在C中从多个字符数组字段创建int值
我正在编写一个C程序,我正在与之斗争(我被面向对象的概念给宠坏了) 我想做的是: 我想把字符数组中的值放入一个整数中。例如,我有在C中从多个字符数组字段创建int值,c,C,我正在编写一个C程序,我正在与之斗争(我被面向对象的概念给宠坏了) 我想做的是: 我想把字符数组中的值放入一个整数中。例如,我有char[0]=='1'和char[1]=='2'。我想把这些值放在一个int变量中,所以它的值是12。我试过寻找,但我不知道如何做到这一点 我真的不擅长解释,所以如果需要,请询问更多信息。如果您的字符数组由字符'1'和'2'组成: char a[2]; a[0] = '1'; a[1] = '2'; int b = (a[0]-'0')*10 + (a[1]-'0')
char[0]=='1'
和char[1]=='2'
。我想把这些值放在一个int变量中,所以它的值是12。我试过寻找,但我不知道如何做到这一点
我真的不擅长解释,所以如果需要,请询问更多信息。如果您的字符数组由字符
'1'
和'2'
组成:
char a[2];
a[0] = '1';
a[1] = '2';
int b = (a[0]-'0')*10 + (a[1]-'0');
如果您的字符数组由数字
1
和2
组成:
char a[2];
a[0] = 1;
a[1] = 2;
int b = a[0] * 10 + a[1];
另外,请参见:如果字符数组包含以零结尾的字符串,则可以应用header
中声明的标准C函数atoi
比如说
char s[] = "12";
int x = atoi( s );
int x = 0;
for ( size_t i = 0; i < sizeof( s ) / sizeof( *s ); i++ )
{
x = 10 * x + s[i] - '0';
}
如果数组不是以零结尾,则为
char s[2] = "12";
然后可以手动将其内容转换为整数
比如说
char s[] = "12";
int x = atoi( s );
int x = 0;
for ( size_t i = 0; i < sizeof( s ) / sizeof( *s ); i++ )
{
x = 10 * x + s[i] - '0';
}
intx=0;
对于(大小i=0;i
您尝试执行的操作称为解析。在c语言中,可以使用如下的atoi()函数完成此操作:
char s[] = "12";
int num = atoi(s);
你的问题表明缺乏个人研究。有很多例子可以解决这个小问题。你知道你的字符数组的大小吗?int foo=(字符数组[0]&0x0f)*10+(字符数组[0]&0x0f)。不要叫你的角色查理,我想这会有帮助的:非常感谢。这也行得通。实际上,这是一个相当简单的解决方案。不知道我怎么没想到这个。