我正在尝试用C语言修改一个字符串
char signal_cat[8];
if (k == 1) {
strcpy_s(signal_cat, "HPHA",6); //why cant I change char array (string) values???
}
else if (k == 2) {
strcpy_s(signal_cat, "Normal",6);
}
printf("Original signal category: %s \n", signal_cat);
当我运行此命令时,它显示一个异常“Lab3Parti.exe 中 0x7BEBF71D (ucrtbased.dll) 处未处理的异常:0xC0000005:访问冲突读取位置 0x00000006”
我努力了
signal_cat = "HPHA";
也是如此,但错误显示“表达式必须是可修改的左值”
有谁知道我该怎么做?
您是否使用 Visual Studio 编译 C 代码?
如果你是并且编译器强迫你使用strcpy_s()
代替strcpy()
,仍然可以使用标准库函数strcpy()
通过在源文件顶部定义以下宏:
#define _CRT_SECURE_NO_WARNINGS
代码中的实际问题是您以错误的顺序向 strcpy_s() 提供参数。检查函数的原型以按正确的顺序提供参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)