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);
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);
什么你实际上是试图做看起来是这样的:
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
directelly从标准输入
scanf(" %19s", input);
让你输入的字符串,然后你可以数阵列从输入字符串保存每一位这样:
len = strlen(input);
for (i=0; i<len; i++) {
number[i] = input[i] - '0';
}
你意味着'getNumber'包含* string *'“65432”'? –
在类似的问题上有很多答案。 – Megharaj