今天看linux内核驱动的代码,发现一个算法写得挺简单,也有意思。
分享一下我的测试代码:
#include <stdio.h>
typedef int U32 ;
U32 String2Dec( const char *pstr )
{
char ch;
U32 value;
value = 0;
//从字符串的第一个字符遍历到' '
while( *pstr != ' ' )
{
//获取字符
ch = *pstr++;
//判断字符是否在0-9这个范围
if( ch >= '0' && ch <= '9' )
{
//ch-'0'相当于将字符转换为整数
value = value * 10 + ch - '0';
}
}
//返回
return value;
}
int main(void)
{
char *pstr = "123456" ;
int num = String2Dec(pstr);
printf("num:%d
",num);
}
运行结果:123456
转载地址:http://blog.csdn.net/morixinguan