TToenn 发表于 2020-4-13 10:43:57

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.

TToenn 发表于 2020-4-13 10:46:24

这是问题

永恒的蓝色梦想 发表于 2020-4-13 10:49:10

本帖最后由 永恒的蓝色梦想 于 2020-4-13 10:54 编辑

TToenn 发表于 2020-4-13 10:46
这是问题

数组越界
8,9行改成str3="Long long ago";
str4="one thurand years ago";而且你的thousand拼错了

TToenn 发表于 2020-4-13 10:59:58

永恒的蓝色梦想 发表于 2020-4-13 10:49
数组越界
8,9行改成而且你的thousand拼错了

第7行怎么办

悠悠2264 发表于 2020-4-13 11:00:21

本帖最后由 悠悠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;
}

TToenn 发表于 2020-4-13 11:25:50

悠悠2264 发表于 2020-4-13 11:00
1.你的str3和str4的索引只有0-23,24就越界了。
2.这样只能给字符数组里的一个索引赋值一个字符,所以不能 ...

找不到strcpy函数,strcpy_s也不行

悠悠2264 发表于 2020-4-13 11:32:24

TToenn 发表于 2020-4-13 11:25
找不到strcpy函数,strcpy_s也不行

需要#include <string.h>,导入string.h头文件,strcpy是这个头文件里的

TToenn 发表于 2020-4-13 11:38:43

悠悠2264 发表于 2020-4-13 11:32
需要#include ,导入string.h头文件,strcpy是这个头文件里的

导入了,说是没有或者不安全

悠悠2264 发表于 2020-4-13 11:41:08

本帖最后由 悠悠2264 于 2020-4-13 11:44 编辑

TToenn 发表于 2020-4-13 11:38
导入了,说是没有或者不安全

你用的什么编译器?我这好好的啊。我用的是Dev-C++

TToenn 发表于 2020-4-13 11:56:38

悠悠2264 发表于 2020-4-13 11:41
你用的什么编译器?我这好好的啊。我用的是Dev-C++

VS 2019

悠悠2264 发表于 2020-4-13 12:03:55

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

倒戈卸甲 发表于 2020-4-13 12:25:26

{:10_256:}#define _CRT_SECURE_NO_WARNINGS
记住这行代码,写用VS写C程序时,复制粘贴在代码的最前面。

TToenn 发表于 2020-4-14 10:42:37

悠悠2264 发表于 2020-4-13 12:03
建议使用小甲鱼推荐的Dev-C++和Code::Blocks,vs有些库没有(比如string.h),添加这些库很麻烦。下载地 ...

真是。。。爽!!
页: [1]
查看完整版本: C语言小白