c - 如何输入不带空格或 '\n'的整数数组?

标签 c

我想输入一个不带空格的整数数组。

例如:- 032146548,每个整数应该单独存储在数组中,

i.e a[0]=0,a[1]=3,a[2]=2 and so on.

我该怎么做?

最佳答案

我认为说“每个数字”更清楚,因为一旦您知道字符序列 032146548 代表多少个“整数”(通常的做法是“一个”),就根本不明显了应该有好几个。

最简单的方法是将其作为数字字符串读入,然后通过减去 '0' 将每个数字转换为其对应的整数:

char line[12];
unsigned int a[10];
if(fgets(line, sizeof line, stdin) != NULL)
{
  const size_t digits = strlen(line) - 1;
  for(size_t i = 0; i < sizeof a; ++i)
  {
    if(i < digits && isdigit((unsigned int) line[i]))
       a[i] = line[i] - '0';
    else
       a[i] = 0;
  }
}

关于c - 如何输入不带空格或 '\n'的整数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22956626/

相关文章:

C 传递一个包含结构体数组的结构体

c - 在某些使用 C 等编程语言的软件中是否存在间接寻址的实际应用?

c - 将 char* 数组大小存储在 int 计数器中

java - 如何使用Android接收特定 radio 频率

c - 如何在C程序中100%使用树莓派CPU?

c - 为什么要打印? (C语言)

c - 将结构数组嵌套到另一个结构中

ios - 如何将 objective-c 函数作为回调传递给 C 函数?

java - 如何在 C 中执行此操作(来自 Java)

用C计算文本文件中单词的出现次数