-2

我编写了一个 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;
}
4

2 回答 2

0

您的函数没有返回值。如果你想从它返回一个指针,那么只需返回它。而且void也不正确

于 2013-01-04T20:14:39.340 回答
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;
}
于 2013-01-04T20:41:19.060 回答