atoi与itoa的实现
2012-07-03 12:12
225 查看
先说下itoa,将数字转换成字符串。利用了在一个数后面加‘0’即可将之转换成char型,这样将每个数字转换成char后即成为一个逆序的字符数组,再逆序下即可。
atoi即将char-'0'即得整数。
代码中需要注意的地方:
1.函数名:可以设想有atoi有返回值来标识是否成功转换
2.atoi中对于无法转换成数字的字符的判断,方式如下:
3.atoi中溢出的判断:
4.可以考虑将转化的数字类型设大点,如long long
自己实现:
atoi即将char-'0'即得整数。
代码中需要注意的地方:
1.函数名:可以设想有atoi有返回值来标识是否成功转换
//参数要为const bool atoi(const char* pStr,int &nValue)
2.atoi中对于无法转换成数字的字符的判断,方式如下:
if(pStr[i] >= '0' && pStr[i] <= '9') { //转换 } else { return false; }
3.atoi中溢出的判断:
if(nValue > std::numeric_limits<int>::max()) { return false; }
4.可以考虑将转化的数字类型设大点,如long long
自己实现:
void itoaMyself(int number,char str[]) { bool bNagetive = false; if(number<0) { bNagetive = true; number = 0-number; } int i=0; char tmp[12]; //将数字转换成char while(number) { tmp[i] = number%10 + '0'; i++; number=number/10; } if(bNagetive) { tmp[i++] = '-'; } tmp[i] = '\0'; i--; //cout<<"tmp[]为:"<<tmp<<endl; int j=0; //逆置的char转换成正序的字符串 while (i>=0); { str[j++]=tmp[i--]; } str[j] = '\0'; }
bool atoiMyself(char* str,int &number) { int i=0,j=0; bool bNagetive = false; if(!str) return false; char tmp[12]; //空格或制表符 while(str[i]==' ' || str[i]=='/t') { i++; } if(str[i]=='-') { bNagetive=true; i++; } //cout<<"str[]:"<<str<<endl; int sum=0; while(str[i]) { //if(IsNumber(str[i]-'0')) return false; sum = str[i]-'0'+sum*10; i++; } if(bNagetive) sum=-sum; number=sum; return true; } 附:把字符串转换成整数实现[何海涛]
相关文章推荐
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- 整理atoi itoa的实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- 常用库函数编程实现用法总结(四)strdup strtok itoa atoi
- C语言atoi()和itoa()函数的实现
- atoi与itoa代码实现
- atoi itoa strcpy strcmp strlen strcat memcpy memset实现
- 字符串转换为整数(atoi)与整数转换成字符串(itoa)的实现
- C语言实现atoi和itoa(字符串与数字之间的转化)
- atoi() 与 itoa()函数的内部实现
- c函数itoa和atoi实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- 【字符串】模拟实现atoi和itoa
- memcpy, strcpy, strlen, strcmp, itoa, atoi 的函数实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- atoi() & itoa()函数的内部的实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- atoi() 与 itoa()函数的内部实现
- 模拟实现库函数的atoi、atof和itoa
- 模拟实现C库的atoi和itoa