字符串输出的异常问题
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
char *p="abcd",*q="mnpq",*strcat();
printf("%s,%,s,%s\n",p,q,strcat(p,q));
}
连接编译之后 提示出错:
AppName: 01.exe AppVer: 0.0.0.0 ModName: msvcrt.dll
ModVer: 7.0.2600.5512 Offset: 000360b4
这是什么原因呢? 烦请各位大虾指点!~
[解决办法]
- C/C++ code
#include <stdio.h>#include <string.h>int main(){ char p[10]="abcd",*q="mnpq";//改成数组就行了,*p="abcd"是不可修改的,也没有存得下q的空间 printf("%s\n%s\n",p,q); printf("%s\n",strcat(p,q)); return 0;}
[解决办法]
如果你是想要连接两个字符串,那strcat函数是不能写在变量定义的地方的。
另外,被strcat连接的字符串中,前面的那个不能是常量字符串。而你的程序里两个都是常量字符串。