gpt4 book ai didi

c - 数组 "pointer"上写入值?

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:41 25 4
gpt4 key购买 nike

我尝试从用户那里获取 5 个字符串,并将该字符串存储到一个 char 字符串数组中,但是,当我尝试使用该程序时,程序的输出始终相同,最后一个值为用户输入了...

查看我的代码:

#include <stdio.h>

int main()
{
int i = 0;
char *s[50];
char str[50];

for(i=0;i<5;i++)
{
fgets(str, 50, stdin);
s[i] = str;
}

for(i=0;i<5;i++)
printf("%s\n ", s[i]);
}

那么,我该如何解决这个问题,如何将用户数字化的值放入数组中,并在其他时间打印这些值???

最佳答案

您需要使用 strcpy 而不是简单的赋值。

str 是一个内存位置,所有 s[i] = str 都指向同一个缓冲区,每次调用 fgets 时都会覆盖该缓冲区。

像下面这样的东西将为您提供所需的东西:

#include <stdio.h>

int main()
{
int i = 0;
char s[5][50];
char str[50];

for(i=0;i<5;i++)
{
fgets(str, 50, stdin);
strcpy(s[i],str);
}

for(i=0;i<5;i++)
printf("%s\n ", s[i]);
}

关于c - 数组 "pointer"上写入值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16657571/

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