读书人

字符串输出的错误有关问题

发布时间: 2012-03-26 15:46:56 作者: rapoo

字符串输出的异常问题
#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连接的字符串中,前面的那个不能是常量字符串。而你的程序里两个都是常量字符串。

读书人网 >C语言

热点推荐