【C/C++】字符串转换成整数
来源:互联网 发布:linux 文件名模糊匹配 编辑:程序博客网 时间:2024/06/06 20:03
考虑测试用例:
1、功能测试(输入的字符串表示正数、负数和0)。
2、边界值测试(最大的正整数和最小的负整数)。
3、特殊字符的输入(NULL、字符串中含有非法字符)。
#include<iostream>using namespace std;const int invalid =0;const int valid = 1;int status = valid;int strtoint(const char* string){status = invalid;//用来区分返回num=0时是非法输入还是输入的是'0'.当status为invalid是表示为非法输入,当为valid时是输入的是0.long long num = 0;if(string != NULL && string!='\0'){bool flag = true;if(*string == '+'){string++;}else if(*string == '-'){flag = false;//说明输入是负数string++;}if(*string!='\0') //当仅输入的是‘+’、‘-’号是为非法输入。{int sign = flag ? 1:-1;while(*string!='\0'){if(*string>='0' && *string<='9'){num = num*10+sign*(*string-'0');if((flag && num> 0x7FFFFFFF) || (!flag && num<0x80000000)){//当正数超过0x7FFFFFFF 或者负数小于0x80000000时为非法输入num = 0;break;}string++;}else {num = 0;break;}}//end of whileif(*string =='\0')//用来判断‘1a33’这种情况为非法输入,当遇到字符a时会退出while循环,但是并没有到结束符。{status = valid;return num;}}//end of if(*string!='\0')}return (int)num;}void Test(const char* a,int &b){int result = strtoint(a);if(result ==0 && b == invalid)cout<<"The input is invalid!"<<endl;elsecout<<"The output is:"<<result<<endl;}void main(){char *a = "-";Test(a,status);system("pause");}
0 0
- 【C/C++】字符串转换成整数
- c 字符串 整数转换
- c语言中的字符串转换成整数
- C:atoi 字符串转换成整数
- c语言,字符串转换成整数
- c语言字符串整数转换
- C语言 整数字符串转换成int整数
- c/c++算法之字符串转换成整数
- C语言习题 整数转换成字符串
- C语言atoi()函数:将字符串转换成int(整数)
- C语言atoi()函数:将字符串转换成int(整数)
- C语言atoi()函数:将字符串转换成int(整数)
- C语言atoi()函数:将字符串转换成int(整数)
- C语言实现把字符串转换成整数
- C学习笔记 10 字符串转换整数
- 将C字符串转换为整数
- c 把一整数转换为字符串
- C语言中将字符串转换为整数
- GhostScript Could not open temporary file''原因
- Android 时间格式处理
- Android 图片全屏
- 函数指针数组的定义
- 约瑟夫环JAVA
- 【C/C++】字符串转换成整数
- Ubuntu 12.04 下安装VLC
- 架构师”相之道”--以战术引导战略思维
- 数据库事务
- C++中string的常用函数总结
- 注入过程中UNION在不同环境的使用注意事项
- c标签forEach嵌套循环
- JXL导出excel表
- FireBird 数据库