题目
题目:把字符串转化为整数 ,若输入无效,则返回0且将标志位设为true
自己以前在一些书上面看到过关于 字符串转化为整数的例子,心中有点印象,知道要考虑一些特殊情况。今天决定写下这段代码,发现代码写的稀烂,重复度太大,需要改善。
刚实现的代码如下:
/*
题目:把字符串转化为整数 ,若输入无效,则返回0且将标志位设为true;
需要考虑的测试用例如下:
1)"123"
2)"+123" //带符号的正数输入
3)"-123"
4) " abd123 " //非法输入
5) NULL
*/
#include<stdio.h>
#include<string.h>
/*功能:检查str中的字符是否全部是由数字构成 ,若是,则返回true,否则返回false
@param str:字符串
@param begin:字符串的起始下标
@parameter end:字符串的 终止下标
*/
bool checkStr(char *str,int begin,int end){
if(begin<end){
for(int i=begin;i<end;i++){
if(!(str[i]>='0'&&str[i]<='9')){
return false;
}
}
return true;
}
else{
return false;
}
}
/*
开始转换
*/
int beginStringToNum(char *str,int begin,int end){
int num=0;
for(int i=begin;i<end;i++){
num=num*10+str[i]-'0';
}
return num;
}
void strToNum(char *str){
bool str_illege=false;
int num=0