我是学习c语言的新手,我正在尝试学习char数组的函数。在这段代码中,我想知道一个使用char数组作为参数的函数,并给出另一个char数组作为结果。当我运行代码时,输出应该是:Helloooo world!
然而,当我运行代码时,程序崩溃了。我该如何解决这个问题?我使用的是正确类型的变量吗?
#include <stdio.h>
#include <string.h>
char *write();
int main()
{
char x[10] = "ooo";
printf("%s, world!\n", *write(x));
return 0;
}
char *write(char x[10])
{
char str[10];
strcpy(str, "Hello");
strcat(str,x);
x = str;
return x;
}
答案 0 :(得分:1)
您有两个问题:
char *write();
int main()
{
char x[10] = "ooo";
char buff[20];
printf("%s, world!\n", write(buff, x, 20));
return 0;
}
char *write(char *buff, char *s2, int maxsize)
{
strcpy(buff, "Hello");
if(strlen(buff) + strlen(s2) < maxsize)
strcat(buff,s2);
else
strcpy(buff,"Error");
return buff;
}