我遇到了一个问题,我需要将字符串的每个元素提取到一个整数数组,该字符串只包含没有任何空格或分隔符的整数值。
这是一个例子。
char input[8]="02320000";
到
int output[8]={0,2,3,2,0,0,0,0};
我尝试使用atoi()
,它将整个字符串视为数字。
字符串字符为0-3。
谢谢
答案 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,等等。