人员识别号查询:c++中char类型变量如何转换成int类型变量?

来源:百度文库 编辑:中科新闻网 时间:2024/05/06 01:29:39
例子:
char str_tmp;
int int_tmp;
str_tmp='5';
int_tmp=(int)str_tmp;
cout<<int_tmp<<endl;
输出的是5的ASCII码值53,怎么才能让int_tmp==5而不是53呢?

在ASCII码中数字'0'-'9'的编码是48 - 57,所以你减一个'0',或者减一个48都可以。

从 char 到 int 属于“从短到长”的转换,而从 int 到 char 则为“从长到短”的转换。
短到长时,系统会自动提升,会将1个字节的char类型数据扩充到4个字节(32位系统),对于无符号类型来说,只将int的最低字节复制为char的值,其余三个字节都为0。
长到短时,只将int的最低字节的内容复制到char类型的变量,三个高位字节被忽略,这在编译时会给出警告,但通过强制类型转换则可以避免警告出现,如 char ch = (char)intvar。

char str_tmp;
int int_tmp;
str_tmp='5';

int_tmp=(int)(str_tmp - '0');

cout<<int_tmp<<endl;

用函数斯stoi()就行。
int_tmp=stoi(str_tmp);

int_tmp=(int)str_tmp;改成
int_tmp = str_tmp -'0';