gpt4 book ai didi

C字符串数组问题

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

我要输入:

abc def ghi jkl

输出应该是:

abc
def
ghi
jkl

我想将每个字符串存储在一个数组中,然后使用 for 循环打印每个位置。

我有这个代码:

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

int main()
{
char vector[100];
int i = 0;
int aux = 0;
while (i < 5)
{
scanf("%s", &vector[i]);
i++;
aux+= 1;
}

for (i=0;i<aux;i++)
{
printf("%s\n", &vector[i]);
}

return 0;
}

我做错了什么?

第二个问题:

如何更改代码以在按 ctrlD 时停止读取输入并打印输出?

最佳答案

您正在获取“vector ”中字符的地址,而不是填充一些字符串。这些修改:

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

int main()
{
char vector[5][100]; /* five times 100 characters, not just 100 characters */
int i = 0;
int aux = 0;
while (i < 5)
{
scanf("%s", vector[i]); /* notice the & is gone */
i++;
aux+= 1;
}

for (i=0;i<aux;i++)
{
printf("%s\n", vector[i]); /* notice the & is gone */
}

return 0;
}

对于 ctrl-D 位,您可以让它在输入结束时停止读取,但是您必须设法获取大量输入(因此您可能必须动态分配您“使用 scanf 解析”您的字符串)

关于C字符串数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5530165/

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