繁体   English   中英

如何使用C将字符串中的每个字符存储为数字

[英]How to use C to store every character from a string as a number

假设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);

您实际上要尝试执行的操作可能如下所示:

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

请记住,字符串中的第一个字符位于索引0 ,第二个字符位于索引1 ,依此类推。然后还要记住,您可以通过减去'0'ASCII数字中获取数字(请查看ASCII表以了解原因)。

所以你可以通过做例如

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

等等。

当然,这可以整齐地循环执行。

首先,您可以直接使用scanf从stdin获取输入字符串

scanf(" %19s", input);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM