字符串到个别数字

时间:2018-01-30 01:02:16

标签: c arrays string atoi

我遇到了一个问题,我需要将字符串的每个元素提取到一个整数数组,该字符串只包含没有任何空格或分隔符的整数值。

这是一个例子。

char input[8]="02320000";

int output[8]={0,2,3,2,0,0,0,0};

我尝试使用atoi(),它将整个字符串视为数字。

字符串字符为0-3。

谢谢

2 个答案:

答案 0 :(得分:3)

char input[8]="02320000";
int output[8];

for(int i = 0; i < 8; i++)
{
     output[i] = input[i] - '0';
}

-'0'Convert a character digit to the corresponding integer in C

的解释

答案 1 :(得分:2)

好吧,你可以循环遍历字符串的所有字符:

char input[8]="02320000";
char output[8];

for(int = 0; i < 8; ++i)
    output[i] = input[i] - '0';

C中的字符串只是以所谓的字符结尾的字符序列 '\0' - 终止字节,其值为0.我们使用char数组来存储它们 我们使用角色的ASCII值。

请注意1 != '1'1是整数,'1'是代表 第一名。表示的值为49(参见ASCII)。如果你想计算 字符表示的实数,你必须使用c-'0',其中 c是有问题的角色。这是有效的,因为在表中,值为 这些数字也按数字排序:'0'为48,'1'为 49,'2'是50,等等。