C语言 如何将char 单字符型转成int型??? c语言中,怎样把内容为数字的char转换为int?

C\u8bed\u8a00 \u5982\u4f55\u5c06char \u5355\u5b57\u7b26\u578b\u8f6c\u6210int\u578b???

int
a='key'-'0'
\u5c06char
\u5b57\u7b26\u8f6c\u6362\u4e3a
ASCII\u7801
\u51cf\u53bb0\u7684
ASCII\u7801
\u5b83\u4eec\u7684\u5dee\u503c\u5c31\u662fint
\u578b\u7684\u6570\u503c

\u5185\u5bb9\u4e3a\u6570\u5b57\u7684char\uff0c\u5305\u542b
0,1,2,3,4,5,6,7,8,9
\u5171\u8ba110\u4e2a\u5b57\u7b26\u3002
\u8fd9\u5341\u4e2a\u5b57\u7b26\u5728\u5b58\u4e3a\u5b57\u7b26\u578b\u65f6\uff0c\u5176\u5b58\u50a8\u503c\u4e3a\u5bf9\u5e94\u7684ascii\u7801\uff0c\u800c\u8fd9\u4e9bascii\u7801\u662f\u8fde\u7eed\u7684\uff0c\u4e14\u6309\u7167\u5176\u672c\u8eab\u6570\u5b57\u7684\u5927\u5c0f\u6765\u6392\u5217\u3002
\u8fd9\u6837\u5c31\u53ef\u4ee5\u5c06\u5b57\u7b26\u503c\uff0c\u51cf\u53bb\u8d77\u59cbascii\u7801\u503c\u5b9e\u73b0\u8f6c\u4e3a\u5bf9\u5e94\u503c\u7684\u6548\u679c\u3002
\u8bbe
int a; //\u8f6c\u6362\u7684\u76ee\u6807\u53d8\u91cf\u3002
char c = '7'; //\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u3002
c = a - '0';
\u8fd9\u6837\u5f97\u5230\u7684\u5c31\u662f\u5bf9\u5e94\u7684\u503c\u4e86\uff0c\u5373c = 7\u3002
\u5982\u679c\u5728\u6587\u4ef6\u4e2d\u9700\u8981\u591a\u6b21\u8be5\u64cd\u4f5c\uff0c\u5219\u53ef\u4ee5\u5b9a\u4e49\u4e00\u4e2a\u5e26\u53c2\u5b8f\uff0c\u5982\u4e0b\uff1a
#define chartonumber(x) (x-'0')
\u8fd9\u6837\u53ea\u9700\u8981\u8c03\u7528
c = chartonumber(a);
\u5373\u53ef\u5b9e\u73b0\u6548\u679c\u3002

char a='1';
char base='0';
int i = (int)a - (int)base;
//可以简单点写一个宏
#define ATOI(X) ( (X) - 30)

原理就是字符型实际是存储的整数,具体数值可查ASCII表,而数字0-9的ASCII是相邻的,数字字符通过减去基础的'0'的ASCII码值,就能得到对应的字符代表的实际数字,然后赋值给其他数字型变量即可。

下面是ASCII表



int a='key'-'0'
将char 字符转换为 ASCII码 减去0的 ASCII码 它们的差值就是int 型的数值

int i;
char key = '1';
i = key-'0';


char c='1';
int i;
i=c-'0';

int x = key - '0';


扩展阅读:char a[10] ... c语言基础知识入门 ... c语言char可定义汉字吗 ... c语言中char 是什么意思 ... c语言char怎么用 ... c语言中char的输出格式 ... c语言char字符型输出 ... char 在c语言中的意思 ... char输出的是字符还是数字 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网