我使用scanf
输入了一组字符作为输入,实际上就像"1854?156X"
一样。
(使用scanf("%c",&input[i])
,输入是一个包含10个字符的数组);
在进一步处理代码时,我希望乘以(first digit *10)
& (second digit *9)
等等。
因此,在乘以它的同时取1
的{{1}}的ASCII值,而不是(49 *10)
。
(1*10)
其中input[i]*counter;
是
counter
如何将char数组转换为整数数组,其中精确数字应该乘以而不是该字符的ascii值?
答案 0 :(得分:3)
如果您提前知道您的值是ascii,那么只需从中减去'0'的值。例如。 '9' - '0' = 9'
答案 1 :(得分:1)
绝对使用atoi()。它为您提供了大量的手动字符检查。
int input_val = atoi(input);
int temp = input_val;
while(temp)
{
int digit = temp % 10;
temp /= 10;
}
这为您提供“数字”中从右到左的每个数字。您可以使用加法和乘以10的幂来构造您的数字。
答案 2 :(得分:0)
答案 3 :(得分:0)
使用strtol
将这些字符串转换为整数类型。
它优于atoi
因为失败模式不明确。