考虑测试用例:
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 && nu

这篇博客主要探讨如何在C/C++中将字符串转换为整数,包括功能测试部分,如处理正数、负数和0,以及边界值测试,如最大正整数和最小负整数。同时,文章还会讨论处理特殊字符输入的情况,如NULL和含有非法字符的字符串。
最低0.47元/天 解锁文章
273

被折叠的 条评论
为什么被折叠?



