C语言小白
想问这是怎么了?#include <stdio.h>
int main()
{
char str1 = "wo ai de ren bu ai wo";
char str2 = "so sad story it is.";
char str3, str4;
str3 = "Long long ago";
str4 = "one thurand years ago";
printf("%s, %s", str1, str2);
printf("%s, %s", str3, str4);
return 0;
}
wo ai de ren bu ai wo, so sad story it is.烫烫烫烫烫烫烫烫烫烫烫烫d烫烫烫蘳o sad story it is., 烫烫烫烫烫烫烫烫烫烫烫烫t烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫蘢烫烫烫蘳o sad story it is. 这是问题 本帖最后由 永恒的蓝色梦想 于 2020-4-13 10:54 编辑
TToenn 发表于 2020-4-13 10:46
这是问题
数组越界
8,9行改成str3="Long long ago";
str4="one thurand years ago";而且你的thousand拼错了 永恒的蓝色梦想 发表于 2020-4-13 10:49
数组越界
8,9行改成而且你的thousand拼错了
第7行怎么办 本帖最后由 悠悠2264 于 2020-4-13 11:31 编辑
1.你的str3和str4的索引只有0-23,24就越界了。
2.这样只能给字符数组里的一个索引赋值一个字符,所以不能这样赋值字符串,需要用到<string.h>里的strcpy来赋值,他会给每个索引存储一个字符,代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
char str1 = "wo ai de ren bu ai wo";
char str2 = "so sad story it is.";
char str3, str4;
strcpy(str3,"Long long ago");
strcpy(str4,"one thurand years ago");
printf("%s, %s", str1, str2);
printf("%s, %s", str3, str4);
return 0;
} 悠悠2264 发表于 2020-4-13 11:00
1.你的str3和str4的索引只有0-23,24就越界了。
2.这样只能给字符数组里的一个索引赋值一个字符,所以不能 ...
找不到strcpy函数,strcpy_s也不行 TToenn 发表于 2020-4-13 11:25
找不到strcpy函数,strcpy_s也不行
需要#include <string.h>,导入string.h头文件,strcpy是这个头文件里的 悠悠2264 发表于 2020-4-13 11:32
需要#include ,导入string.h头文件,strcpy是这个头文件里的
导入了,说是没有或者不安全 本帖最后由 悠悠2264 于 2020-4-13 11:44 编辑
TToenn 发表于 2020-4-13 11:38
导入了,说是没有或者不安全
你用的什么编译器?我这好好的啊。我用的是Dev-C++
悠悠2264 发表于 2020-4-13 11:41
你用的什么编译器?我这好好的啊。我用的是Dev-C++
VS 2019 TToenn 发表于 2020-4-13 11:56
VS 2019
建议使用小甲鱼推荐的Dev-C++和Code::Blocks,vs有些库没有(比如string.h),添加这些库很麻烦。下载地址参考小甲鱼的:https://fishc.com.cn/forum.php?mod=viewthread&tid=66281&extra=page%3D1%26filter%3Dtypeid%26typeid%3D571 {:10_256:}#define _CRT_SECURE_NO_WARNINGS
记住这行代码,写用VS写C程序时,复制粘贴在代码的最前面。 悠悠2264 发表于 2020-4-13 12:03
建议使用小甲鱼推荐的Dev-C++和Code::Blocks,vs有些库没有(比如string.h),添加这些库很麻烦。下载地 ...
真是。。。爽!!
页:
[1]