我编写了一个strcat函数。但我的功能并没有以这种方式运行-----> char * mystrcat(char * s,char * t)。我想要返回一个指针。你能救我吗?
#include <stdio.h>
void mystrcat(char *s,char *t)
{
while(*s!='\0')
s++;
s--;
while((*(s+1)=*t)!='\0')
{ s++;
t++;
}
}
int main()
{
char str[30], str1[30];
gets(str);
gets(str1);
mystrcat(str, str1);
printf("%s\n",str);
return 0;
}
答案 0 :(得分:0)
您的功能没有返回值。如果你想从它返回一个指针,那么只需返回它。并且 void 对于
也是不正确的答案 1 :(得分:0)
当您写void mystrcat(char *s,char *t)
时,您使用void表示“我没有返回值”。如果要返回指针,则不能为void
。
要返回指向字符串的指针,请使用char**
。
您的字符串是一系列字符,表示为char*
。
以下是使用您的代码的示例。
#include <stdio.h>
char** mystrcat(char *s,char *t)
{
char *sOrig = s;
while(*s!='\0'){
s++;
}
s--;
while( ( *(s+1) = *t) != '\0')
{
s++;
t++;
}
return &sOrig;
}
int main()
{
char str[30], str1[30];
gets(str);
gets(str1);
char** concatValuePointer = mystrcat(str, str1);
printf("Pointer is %p\n",concatValuePointer);
return 0;
}