2013-10-09 43 views
0

Asssume即getNumber是65432
我想存储阵列各如何使用C字符串中的每个字符存储为数字

数量

例子:

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); 
+0

你意味着'getNumber'包含* string *'“65432”'? –

+0

在类似的问题上有很多答案。 – Megharaj

回答

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 
1

记得在一个字符串的第一个字符是在指数0,第二索引1等,然后还记得你可以通过从'0'减去ASCII数字来获得数字(查看ASCII表来理解原因)。

所以,你可以通过做,例如,

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

等等。

这当然可以整齐地在循环中完成。

1

首先,你可以使用scanf directelly从标准输入

scanf(" %19s", input); 

让你输入的字符串,然后你可以数阵列从输入字符串保存每一位这样:

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