C 根据输入的数字,扩展给定字符串

C 根据输入的数字,扩展给定字符串,c,string,C,String,如果N是正数,则使用字符C将给定字符串S扩展到N个位置。使用函数完成它,并在主函数中检查函数是否工作。N的任何值都表示它不起作用 #include <stdio.h> #include <stdlib.h> #include <string.h> int cat(char*,char,int); int main() { char S[20],C; int N; puts("Enter N: "); scanf("%d",&a

如果N是正数,则使用字符C将给定字符串S扩展到N个位置。使用函数完成它,并在主函数中检查函数是否工作。N的任何值都表示它不起作用

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cat(char*,char,int);
int main()
{
    char S[20],C;
    int N;
    puts("Enter N: ");
    scanf("%d",&N);
    puts("Enter string: ");
    gets(S);
    if (N<1)
        printf("it's unknown whether it works");
    else if(cat(S,C,N)==strlen(S)+N)
            printf("it works.");
    else
        printf("it doesn't work.");
}
int cat(char*S,char C,int N){
int i;
char T[20];
for(i=0;i<N;i++)
    T[i]=C;
return strlen(strcat(S,T));
}
您需要初始化C字符变量:

char C = 'C';
strcat函数连接两个字符串参数并返回一个长度等于两个字符串长度之和的字符串。因此,您需要在cat函数中声明一个新数组,其大小为string1+string2的长度,该函数将保存连接结果。然后返回其长度


学习如何使用调试器,并逐行检查代码。这不是主要问题的根本原因,但C在未初始化的情况下使用。如果N大于20,则T很容易溢出。