c语言把char转换成int

比如char型的(用getchar输入的)’12af'怎么变成int型的12af(十六制)

#include <stdlib.h

int atoi(const char *nptr); 

long atol(const char *nptr); 

long long atoll(const char *nptr); 

long long atoq(const char *nptr);

扩展资料:

反之int 转 char *

在stdlib.h中有个函数itoa()()

itoa(i,num,10); 

i     需要转换成字符的数字  

num   转换后保存字符的变量 

10    转换数字的基数(进制)10就是说按照10进制转换数字。

还可以是2,8,16等等你喜欢的进制类型 

原形:char *itoa(int value, char* string, int radix);

实例: 

#include "stdlib.h" #include "stdio.h" main() 

int i=1234; 

char s[5]; 

itoa(i,s,10); 

printf("%s",s); 

getchar(); 

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-18
可以进行强制类型转换呐。其具体形式是这样的:
(数据类型名)(表达式);
#include <stdio.h>
int main()
{
char c;
int a;
c=getchar();
a=(int)(c);
printf("%x\n",a);

}
这个是我的程序,输入“12af‘,结果为”31’;
另外跟你说明一下,getchar函数只能读取单个字符,也就是说,你输入1这单个字符12af这个字符串运行结果是一样的,都是31。
第2个回答  2012-11-05
可以用库函数中的strtoul,方法网上搜索一下即可。
也可以自己写个函数转换一下代码如下:
int HexStrToInt(char *str)
{
int Ret = 0;
while(*str != 0)
{
if(*str >= '0' && *str <= '9')
Ret = (Ret << 4) + *str - '0';
else if(*str >= 'a' && *str <= 'f')
Ret = (Ret << 4) + *str - 'a' + 10;
else if(*str >= 'A' && *str <= 'F')
Ret = (Ret << 4) + *str - 'A' + 10;
else
return -1;
str++;
}
return Ret;
}
调用这个函数,就可以返回int型的值了。比如int r = HexStrToInt("10fa");本回答被网友采纳
第3个回答  2012-11-05
调用库函数strtoul,第三个参数的ibase填入16就行。
相似回答