数字转字符串
来源:互联网 发布:mac如何强制重启 编辑:程序博客网 时间:2024/06/12 23:51
一道面试题:
不使用库函数,实现int StrToInt(const char* string);
难点:(考虑尽量全面)
1、空指针时,处理情况
2、输入不合法时,处理情况
3、溢出时处理情况
测试用例:
1、+789
2、-12
3、789
4、12-47
5、空
6、超出int范围的一个数
代码:
- /*
- 1、判断是否为空
- 2、判断正负
- 3、判断是否有非法输入
- 4、判断溢出
- 5、如果是非法情况,返回值为0
- */
- int StrToInt(const char* str)
- {
- if ( !str )
- return 0;
- int cur = 0;
- int flag = 1; //标志该数正负
- int number = 0;
- while ( *(str+cur) != '\0' )
- {
- if ( cur == 0 && *(str+cur) == '-' )
- {
- flag = -1;
- }
- else if ( cur == 0 && *(str+cur) == '+' )
- {
- flag = 1;
- }
- else if ( cur == 0 && *(str+cur)>='0' && *(str+cur)<='9' )
- {
- flag = 1;
- number = number*10 + (*(str+cur)-'0');
- }
- else if ( cur == 0 && *(str+cur)<'0' && *(str+cur)>'9' )
- {
- return 0; //第一个字符为非法字符
- }
- //判断将后面的字符转换成数字
- if ( cur != 0 )
- {
- if ( *(str+cur)>='0' && *(str+cur)<='9' )
- {
- number = number*10 + (*(str+cur)-'0');
- if ( number%10 != (*(str+cur)-'0') ) //溢出判断
- return 0;
- }
- else
- return 0; //后面字符有非法字符
- }
- cur++; //判断下一个字符
- }
- if ( flag == -1 )
- return (0-number);
- else
- return number;
- }
原文地址:点击打开链接
- java数字转字符串
- 数字转字符串
- 数字字符串转整数
- 字符串转整型数字
- 数字转字符串
- 数字转罗马字符串
- 数字转字符串
- 数字字符串转二进制
- 数字转字符串
- 数字字符串转二进制
- 数字转字符串
- 数字字符串转时间
- erlang数字转字符串
- python数字转字符串
- 数字转字符串
- 数字字符串转十六进制
- erlang数字转字符串
- C++ 数字转字符串
- 高斯混合模型
- http中最后修改时间Last-Modified ETag
- 代码整洁之道I--摘要(读书笔记)
- Eclipse Color Themes插件
- jQuery操作表格元素,整体添加与删除
- 数字转字符串
- C++默认构造函数
- MetaTrader编程入门
- 虚函数
- 快速入门github的方法
- 关于系统打开的最大文件数限制
- [剑指offer]从头到尾打印链表
- 第一个pvb组态程序
- 引用 UML的9种图例