这样的字符串怎样转化为整型?
这样的字符串怎样转化为整型?
例如:char * p="1a";
int pp;
如果用函数atoi,pp=atoi(p);结果为1,可我期望的结果为“1a"的十进制26。该用那个函数?
问题点数:20、回复次数:6Top
1 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-05-06 16:08:53 得分 2
有这么转的嘛?Top
2 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-05-06 16:16:58 得分 2
atoi是一个一个字符判断是不是在‘0’到‘9’之间,在的话才转换的,a不在‘0’到‘9’之间所以只转换了一个1。Top
3 楼sun428(Born to Win)回复于 2005-05-06 16:17:33 得分 2
呵,这种转法恐怕要自己写吧……Top
4 楼msdner(你好,世界!)回复于 2005-05-06 16:18:47 得分 2
cout<<dec<<pp=atoi(p);
行不?Top
5 楼msdner(你好,世界!)回复于 2005-05-06 16:19:49 得分 2
看错了看错了。。。Top
6 楼FromNoWhere()回复于 2005-05-06 16:28:34 得分 10
long strtol ( const char * string, char** endptr, int radix );
Convert string to long integer.
Parses string interpreting its content as an integer value until a character that can not be interpreted is found, and returns a long int value.
/* strtol example */
#include <stdio.h>
#include <stdlib.h>
int main ()
{
char szInput [256];
char * pEnd;
long l;
printf ("Enter an integer value: ");
gets (szInput);
l = strtol (szInput,&pEnd,16);
printf ("Value entered: %ld. Its double: %ld\n",l,l*2);
return 0;
}
Top




