我是新的C指针,我试图编写一个函数,如strcat()
,但不使用它。我制定了以下功能:用指针编写strcat()函数
char cat(char *a, char *b) {
int i=0,cont=0,h=strlen(a)+strlen(b);
char c[h]; //new string containing the 2 strings (a and b)
for(i;i<strlen(a);++i) {
c[i] = *(a+i); //now c contains a
}
int j = i;
for(j;j<strlen(b);++j) {
c[j] = *(b+cont); //now c contains a + b
cont++;
}
return c; // I return c
}
这是我如何调用该函数:
printf("\Concatenazione: %c", cat(A,B));
它现在的工作,因为最终的结果是一个奇怪的字符。我怎样才能解决这个功能? Here有完整的主体。
['strcat'(HTTP:// EN .cppreference.com/w/c/string/byte/strcat)不会返回'char' ... –
收听编译器的警告; gcc说,*返回从指针没有转换的整数。*你不能从返回'char'的函数返回一个字符数组。 – user4815162342
我不明白为什么4个答案是使用'malloc'。 'strcat'将源复制到dest并返回dest。 malloc不应该在这里适用。 – Duck