我的strcat没有返回值?

时间:2013-01-04 20:11:20

标签: string function char strcat

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

2 个答案:

答案 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;
}