C语言小问题,请看下面的程序,看看为什么出现这样的错误提示!

#include <stdio.h>
#include <string.h>

int main()
{
char str[]="haha, ",str2[]="My name is Jack";
printf("%s\n",strcat(str,str2));

return 0;
}

错误提示:

#include <stdio.h>
#include <string.h>

int main()
{
char str[29]="haha, ",str2[]="My name is Jack";
printf("%s\n",strcat(str,str2));
return 0;
}

str[]太小追问

谢谢答复,再问下,请看下面的程序,

#include
#include

int main()
{
char str[]="haha, ",str2[]="My name is Jack",str3[40];
str3=strcat(str,str2); //这里提示错误是为什么?
printf("%s\n",str3);

return 0;
}

追答

strcat(str,str2)的意思是把str2拷贝到str的后面,并且strcat()的返回值是整数(系统定义的宏),所以str3=strcat(str,str2);这是错的。具体内容可以到msdn中查看。谢谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-12
str[]="haha,'只占六个字节,而str2[]="My name is Jack";远远超过六个字节,所以不可能把str2存入str追问

谢谢答复,再问下,请看下面的程序,

#include
#include

int main()
{
char str[]="haha, ",str2[]="My name is Jack",str3[40];
str3=strcat(str,str2); //这里提示错误是为什么?
printf("%s\n",str3);

return 0;
}

相似回答