注册 登录
编程论坛 C++教室

【求助】将字符串s,转换为整数,其中s为16进制数对应的字符串,例如“0x2f”,其中0x为16进制的前缀。

sujiabao 发布于 2010-11-03 21:39, 2179 次点击
将字符串s,转换为整数,其中s为16进制数对应的字符串,例如“0x2f”,其中0x为16进制的前缀。
2 回复
#2
kwbplcz2010-11-04 10:29
使用如下API:
#include <stdlib.h>
unsigned long strtoul( const char *nptr, char **endptr, int base );


其中,
const char *nptr 表示要转换的字符串;
char **endptr 填为NULL即可;
int base 表示要转换的字符串的进制,例如10,16,8,2等;


例子1:
char s[100] = "0F";
unsigned long i = strtoul(s,NULL,16);

则 i = 15;

例子2:
char s[100] = "12";
unsigned long i = strtoul(s,NULL,10);

则 i = 12;
#3
shadow_rong2010-11-04 13:38
如果本身就是字符串,那就做单字节比较,然后一个一个取,遇到空格之前的,和0x之后的是一个数。。

建议做 "safsda10safdsafwer20efsffd30"  把里面的数字全加起来............

不是单独的转换那么简单的,建议没学Win32编程之前全部都是自己实现,不要用STL.

  char test[10] = {0};
  
  strcpy(test, "0x2f");
  
  printf("%d",*test);   

就这么一个代码.
1