gpt4 book ai didi

c - 我正在尝试创建一个程序,该程序接受名称并输出缩写,但不断遇到数组错误

转载 作者:行者123 更新时间:2023-11-30 18:50:34 25 4
gpt4 key购买 nike

我正在尝试创建一个程序,该程序接受用户的输入并打印每个单词的第一个字符,但每次我尝试“这是我的代码”。

 #include <stdio.h>
#include <cs50.h>
#include <string.h>

int main(void)
{
char leng[100];
int len;
scanf("%s", &leng[100]);
len = strlen(&leng[100]);
char name[len];
//checking if at end or not
while (name[len] != '\0')
{
if (name[len] == ' ')
printf("%c", name[len + 1]);
len++;
}
}

每次我给出一个名字时,它都会显示一个错误,如下所示:

index 3 out of bounds for type 'char [len]'

最佳答案

这两行不正确:

scanf("%s", &leng[100]);
len = strlen(&leng[100]);

如果你把它们翻译成英文,它们的书面含义是:

  • 扫描一个字符串到内存中第101个元素的地址冷阵。
  • 获取从该地址开始的字符串的长度leng 数组的第 101 个元素。

数组索引越界,因为 leng[100] 超出了数组末尾。请记住,100 个元素的数组是从 0 到 99,而不是从 1 到 100!

您想要扫描数组的基地址,并将数组的基地址传递给 strlen()。我将把语法留给你从课本中找出来。

顺便说一句,您的代码中也存在问题,因为您正在将数据读入名为 leng 的数组,但您的循环正在使用名为 len 的数组。您的代码中至少还有两个其他问题,但我会将它们留给您进行调试。

关于c - 我正在尝试创建一个程序,该程序接受名称并输出缩写,但不断遇到数组错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39885384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com