Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 字符串到单个数字_C_Arrays_String_Atoi - Fatal编程技术网

C 字符串到单个数字

C 字符串到单个数字,c,arrays,string,atoi,C,Arrays,String,Atoi,我遇到了一个问题,需要将字符串的每个元素提取到一个整数数组中,该字符串只包含整数值,没有任何空格或分隔符 这里有一个例子 char input[8]="02320000"; 到 int输出[8]={0,2,3,2,0,0,0,0} 我尝试使用atoi(),它将整个字符串作为数字 字符串将为0-3 谢谢字符输入[8]=“02320000”; char input[8]="02320000"; int output[8]; for(int i = 0; i < 8; i++) {

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

这里有一个例子

char input[8]="02320000";

int输出[8]={0,2,3,2,0,0,0,0}

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

字符串将为0-3

谢谢

字符输入[8]=“02320000”;
char input[8]="02320000";
int output[8];

for(int i = 0; i < 8; i++)
{
     output[i] = input[i] - '0';
}
int输出[8]; 对于(int i=0;i<8;i++) { 输出[i]=输入[i]-“0”; }
解释-0'

字符输入[8]=“02320000”;
int输出[8];
对于(int i=0;i<8;i++)
{
输出[i]=输入[i]-“0”;
}

解释-'0'

嗯,您可以循环使用字符串的所有字符:

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

for(int = 0; i < 8; ++i)
    output[i] = input[i] - '0';
char输入[8]=“02320000”;
字符输出[8];
对于(int=0;i<8;++i)
输出[i]=输入[i]-“0”;
C中的字符串只是以所谓
“\0”
-终止字节,其值为0。我们使用
char
数组来存储它们 我们使用角色的值

请注意,
1!='1'
1
是整数,
'1'
是 第一。表示的值为49(请参见)。如果你想计算 字符表示的实数,必须使用
c-'0'
,其中
c
是所讨论的字符。这是因为在表中 这些数字也按数字本身的顺序排列:
'0'
是48,
'1'
是48
49,
'2'
是50,以此类推。

好的,您可以遍历字符串的所有字符:

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

for(int = 0; i < 8; ++i)
    output[i] = input[i] - '0';
char输入[8]=“02320000”;
字符输出[8];
对于(int=0;i<8;++i)
输出[i]=输入[i]-“0”;
C中的字符串只是以所谓
“\0”
-终止字节,其值为0。我们使用
char
数组来存储它们 我们使用角色的值

请注意,
1!='1'
1
是整数,
'1'
是 第一。表示的值为49(请参见)。如果你想计算 字符表示的实数,必须使用
c-'0'
,其中
c
是所讨论的字符。这是因为在表中 这些数字也按数字本身的顺序排列:
'0'
是48,
'1'
是48
49,<代码> '2' <代码>是50,等等。

你知道如何处理字符串中的单个字符吗?ATOI()将字符串转换成单个整数,而不是整数数组。你不需要接受其中一个答案(参见),但是如果没有一个是令人满意的,你应该考虑解释丢失的内容。也许可以详细说明你对其中一个答案的评论。但请注意不要再问另一个问题。如果您需要回答另一个问题,请提出另一个问题,您可以链接到此问题作为背景。您知道如何处理字符串中的单个字符吗?atoi()将字符串转换为单个整数,而不是整数数组。您无需接受其中一个答案(请参阅),但是如果没有一个是令人满意的,你应该考虑解释什么是缺失的。也许可以详细说明你对其中一个答案的评论。但请注意不要再问另一个问题。若您需要回答另一个问题,请提出另一个问题,您可以链接到此问题作为背景。这让我想到了字符串结尾和字符数组初始化,所以我稍微玩了一下。我了解到,“02320000”似乎隐式转换为(char[8])或(char[9]),这取决于输入是char-input[8]还是char-input[9]。我没想到8号和9号都能像它那样天衣无缝。对于8,它不终止字符串,对于9,它终止字符串。当然,数组大小不能小于8。这让我想到了字符串结尾和字符数组的初始化,所以我稍微玩了一下。我了解到,“02320000”似乎隐式转换为(char[8])或(char[9]),这取决于输入是char-input[8]还是char-input[9]。我没想到8号和9号都能像它那样天衣无缝。对于8,它不终止字符串,对于9,它终止字符串。当然,数组大小不能小于8。