如何将字符数字赋值给整数类型(应该存储相同的char数字)

时间:2014-02-07 07:19:15

标签: c string char printf

我正在尝试将数字字符存储到整数

(包含ip地址的字符串,需要将其存储在整数中)

因为我使用这种方式存储char数字

int a;
char ch = '1';
a = ch;
printf("%d\n",a);
printf("%d\n",a - 48);

输出

49
1

而不是 a - 48 将char('1')存储为整数,有更好的方法可以做到这一点,

4 个答案:

答案 0 :(得分:0)

您可以直接使用

int a = ch - '0'; // '0' has acsii value 48

这是将数字字符转换为相应整数的常用方法。

答案 1 :(得分:0)

尝试一个以下选项:

  1. a = ch-'0';

  2. printf("%d\n",a-'0');

  3. 或者,只需做printf("%c\n",ch);

    BTW,ch不是数字字符串,它是数字字符

答案 2 :(得分:0)

如果你想一次转换一个角色,herohuyongtao的解决方案很好。如果要一次转换字符串(多个字符),可以使用std::atoi和朋友。

答案 3 :(得分:0)

a = atoi( &ch );
printf( "%d",a );