strtoul(将字符串转换成无符号长整型数) 相关函数 atof,atoi,atol,strtod,strtol 表头文件#include<> 定义函数 unsignedlongintstrtoul(constchar*nptr,char**endptr,intbase); 函数说明 strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制数等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。返回值返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。附加说明 ERANGE指定的转换字符串超出合法范围。范例参考strtol() 例子:将十六进制0xFF,转换成10进制,得到255 #include<> #include<> intmain() { inta; charpNum[]="0xFF"; a=strtoul(pNum,0,16); printf("%d\n",a); return0; } ————输出255如何将string型字符串两位两位转化为16进制数Win2000下使用VC6开发W32DLL有string型字符串strC要将其两位转化,得到16进制数,再赋给apdu如memcpy(apdu,"\x00\x84\x00\x00\x08",apdu_len)如strC="0084000008"时转化为"\x00\x84\x00\x00\x08"我这样做charsendbuf[200];unsignedcharapdu[256];intapdu_len;sendbuf[0]='\x00';sendbuf[1]='\x84';sendbuf[2]='\x00';sendbuf[3]='\x00';sendbuf[4]='\x08';apdu_len=5;memcpy(apdu,sendbuf,apdu_len);//两条语句效果一样。//memcpy(apdu,"\x00\x84\x00\x00\x08",apdu_len);//两条语句效果一样。现在strC不一定是"0084000008"的情况下如何转换,如:strC="0153000004"时转化为"\x01\x53\x00\x00\x04",并使“memcpy(apdu,sendbuf,apdu_len)”和“memcpy(apdu,"\x01\x53\x00\x00\x04",apdu_len)”效果一样。该如何做。stringstrC="0153000004";charsendbuf[10];intapdu_len=()/2;for(inti=0;i<apdu_len;i++){stringstmp=(i*2,2);send
strtoul将字符串转成16进制数 来自淘豆网m.daumloan.com转载请标明出处.