【发布时间】:2019-06-14 17:00:25
【问题描述】:
我正在用 C 语言编写一个有用户输入的程序。此输入是一个字符串,其整数值由空格分隔。数字(第一个除外)必须存储在整数数组中。第一个数字表示必须存储多少个数字(即数组的大小)。
在 C 中最简单的方法是什么?这是一个例子:
input--> "5 76 35 95 14 20"
array--> {76, 35, 95, 14, 20}
我一直在四处寻找,但找不到我的问题的解决方案。目前,我尝试将输入的值存储在 char 数组中,当有空格时,我使用 atoi() 将此字符串转换为整数并将其添加到整数数组中。但它打印出奇怪的值。这是代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char text[10];
scanf("%s", text);
int nums[4];
int indNs = 0;
char lastNum[10];
int indLN = 0;
for(int i = 0; i < 10; i++)
{
if(text[i] == ' ')
{
nums[indNs] = atoi(lastNum);
indNs++;
sprintf(lastNum, "%s", "");
indLN = 0;
} else
{
lastNum[indLN] = text[i];
indLN++;
}
}
nums[indNs] = atoi(lastNum);
for(int i = 0; i < 4; i++)
{
printf("%d\n", nums[i]);
}
}
【问题讨论】:
-
fgetsthensscanfin loop 是最简单的。 -
喜欢
int array[5]; int unused; sscanf(input, "%d %d %d %d %d %d", &unused, &array[0], &array[1], &array[2], &array[3], &array[4])? -
@Kamilcuk 10 3 6 4 6 4 5 5 4 5 4 怎么样
-
@Carcigenicate 我上传了帖子。