将字符串t复制到字符串s中,为什么这个程序不对?
#include <iostream.h>
void fff(char *s, char *u)
{
while(*s++ = *u++)
;
cout < <s;
}
void main()
{
char *s = " ";
char *u = "aa ";
fff(s,u);
}
这个程序在编译和连接时都没有错,可是最后总会跳出一个错误对话框,为什么???
[解决办法]
首先,s和u都是指向一个常量字符串,所以不能通过s和u修改字符,其次u的字符串长度比s字符串长度长,拷贝会越界
你应该这样定义
char s[3] = " ";
char u[] = "aa ";
fff(s, u);
[解决办法]
初始时s指向的是常量字符串,是不可以修改的。
可以将
char *s= " ";
换成
char s[100];