C语言实现了许多有趣的函数,而其它语言又在此之上进行了封装.c语言在许多方面可以做一些底层操作--尤其是指针,指供了灵活而又强大的方法.
这个atoi函数没有考虑过多其它问题:如正负号问题以及越界等问题,只是实现最基本的转换.
#include <iostream>
#include <typeinfo>
using namespace std;
int alpha2num(const char *str)
{
int total = 0;
char c;
while(c = *str++)
{
if(isdigit(c))
total = total * 10 + (c - '0');
}
return total;
}
int main()
{
char str_test[] = "345";
int num = alpha2num("1 2abc3");
cout << alpha2num(str_test) << endl;
cout << num << endl;
cout << typeid(num).name() << endl;
}
|
测式的num对应的字符串中包括了空格以及字母,这些都会在转换过程中去除.typeid可以测试一个变量的类型.最后的输出结果是:
345
123
i
阅读(4100) | 评论(3) | 转发(0) |