【问题标题】:How to use C to store every character from a string as a number如何使用 C 将字符串中的每个字符存储为数字
【发布时间】:2013-10-09 07:10:15
【问题描述】:

假设 getNumber 是 65432
我想将数字存储到每个数组中

例子:

number[0] = 6
number[1] = 5
number[2] = 4

我该怎么办?

char input[32];
char getNumber[32];
int number[20];
fgets(input,sizeof(input),stdin);
sscanf(input,"%s",number);

【问题讨论】:

  • 你的意思是getNumber包含字符串 "65432"?
  • 类似的问题有很多答案。

标签: c arrays string io scanf


【解决方案1】:

您实际尝试做的可能如下所示:

int digits[20];

char word[20];
sscanf(input, "%19s", word);       // <-- read word 

int i, len = strlen(word);
for (i = 0; i < len; ++i)
    digits[i] = word[i] - '0';     // <-- get integral value of each character

【讨论】:

    【解决方案2】:

    记住字符串中的第一个字符在索引0,第二个在索引1,等等。然后还记得你可以从ASCII数字中减去'0'得到数字(看在 ASCII 表中了解原因)。

    所以你可以这样做,例如

    number[0] = getNumber[0] - '0';
    number[1] = getNumber[1] - '0';
    

    等等。

    这当然可以巧妙地循环完成。

    【讨论】:

      【解决方案3】:

      首先您可以直接使用scanf 从标准输入中获取您的输入字符串

      scanf(" %19s", input);
      

      然后您可以通过这种方式将输入字符串中的每个数字保存在数字数组中:

      len = strlen(input);
      for (i=0; i<len; i++) {
         number[i] = input[i] - '0';
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-29
        • 1970-01-01
        • 1970-01-01
        • 2015-06-18
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多