学字符串拷贝一章有疑问
本帖最后由 司空曙 于 2018-2-16 20:26 编辑新年好!今晚在看小甲鱼的C语言字符串处理(SIE19),里面说到字符串拷贝不能用赋值,但是我以下的代码在vs2012中可以成功编译并运行
代码如下:
本帖最后由 lyjlyj 于 2018-2-16 17:31 编辑
你这代码什么意思,str是一个常量,str2也是一个常量,不能赋值,编译不通过
我没有vs2010,你把运行的截图发出来 代码呢 lyjlyj 发表于 2018-2-16 08:48
代码呢
已添加代码。 lyjlyj 发表于 2018-2-16 08:48
代码呢
已添加代码 1>------ 已启动全部重新生成: 项目: tmp, 配置: Debug Win32 ------
1>main.c
1>c:\visualstudioprojects\tmp\tmp\main.c(10): error C2106: “=”: 左操作数必须为左值
1>已完成生成项目“tmp.vcxproj”的操作 - 失败。
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ========== lyjlyj 发表于 2018-2-16 08:47
你这代码什么意思,str是一个常量,str2也是一个常量,不能赋值,编译不通过
我没有vs2010,你把运行的截 ...
我直接把代码截图发过来了。不知道为何浏览器会把str2=str 的 给弄没了 人造人 发表于 2018-2-16 18:50
谢谢。我已经把我的代码重新贴出来了。在我的vs2012编译以及运行都是没问题的 字符串拷贝不能用赋值,指的是这个
#include <stdio.h>
int main(void)
{
char str[] = "I Love FishC.com!";
char *str2;
str2 = str;
printf("%s\n", str2);
str = ' ';
printf("%s\n", str2);
return 0;
}
I Love FishC.com!
Love FishC.com!
请按任意键继续. . . 司空曙 发表于 2018-2-16 20:28
谢谢。我已经把我的代码重新贴出来了。在我的vs2012编译以及运行都是没问题的
你这里是单个赋值是可以的,相当于str2=str这样的赋值,
你所说的字符串拷贝应该是直接str2 = str这样的赋值,是错误的
初始化str2的时候,一般是str2={0},0对应的ascii是‘\0'
页:
[1]