atoi 和itoa实现
2015-08-23 20:13
302 查看
atoi 和itoa实现
<span style="font-size:14px;">#include <iostream> using namespace std; //atoi //原型:int atoi(const char*nptr); //参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换, //之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。 int my_atoi(const char *nptr) { int res=0; int flag = 0; while (*nptr == ' ') { nptr++; } if (*nptr == '\0') return 0; if (*nptr == '-') { flag = 1; nptr++; } else if (*nptr == '+') { nptr++; } while (*nptr >= '0' && *nptr <= '9') { res *= 10; res += *nptr - '0'; nptr++; } if (!flag) return res; else return -res; } //itoa //将任意类型的数字转换成字符串 //int value 被转换的整数,char *string 转换后储存的字符数组 //int radix 转换进制数,如2,8,10,16 进制等 //char*itoa(int value,char*string,int radix); char *my_itoa(int value, char* string, int radix) { int len = 0; char ch; char *s=string; if (value < 0) { *string = '-'; string++; s++; len++; value = -value; } while (value%10 ||(value%10==0 && value/10!=0)) { len++; *string++ = value % 10+'0'; value = value / 10; } //swap *string='\0'; string--; len--; while (s < string) { ch = *string; *string = *s; *s = ch; s++; string--; len--; } return string - len; } int main(int argc, char *argv[]) { int value = -50980732; char a[30]; cout << my_itoa(value,a,10) << endl; return 0; }</span>
相关文章推荐
- substring()、 substr() 、slice()的区别:
- ANDROID之路-Android_DDMS中读取data目录
- 推荐25款php中非常有用的类库
- Java策略设计模式感悟
- java多线程详细总结
- Java初级培训笔记------IO流(2)
- 三点坐标求三角形的面积
- G-Sensor 校准标准
- Android左边有固定文字的EditText
- Flexbox + js实现滑动拼图游戏
- jackson基于注解的简单使用
- Android UI之选择器-ToggleButton、Switch、CheckBox和RadioButton
- MySQL 存储引擎简介
- ASP.NET mvc下action的跳转方式
- Android中Path类的lineTo方法和quadTo方法画线的区别
- 环境变量配置文件
- [C++]Merge Two Sorted Lists 归并两个排序的链表
- HOJ 3729 I'm Telling the Truth
- Seaside HDU 3665 【Dijkstra】
- android五项布局