今天在学习C语言中字符串的处理时,一直对这个问题感到费解:
char *str1 = "This is a string!";
char *str2 = "String";
strcpy(str1, str2);
对于以上的程序段,编译能通过,但是一运行就报“段错误”。一直百思不得其解,现在终于搞清楚了。
对于C 语言中的字符串
char *str = "This is a string!"; //str是一个字符串常量,即是const char*
char str[] = "This is a string"; //str是一个字符串变量
所以正确的用法是:
char str1[] = "This is a string!";
char str2[] = "String";
strcpy(str1, str2);
这么一个简单的问题,却一直没有搞清楚~~~~失败啊!看来,还得好好学学C语言,重要的是多学多用!