描述
将一个字符串转换成一个整数,**要求不能使用字符串转换整数的库函数**。 数值为 0 或者字符串不是一个合法的数值则返回 0
#include <cctype>
class Solution {
public:
int StrToInt(string str) {
int fuhao=1;
int res=0;
for(auto ch:str){
if(isalpha(ch)){
return 0;
}
if(ch=='+'){
fuhao=1;
}
if(ch=='-'){
fuhao=-1;
}
if(isdigit(ch)){
res=res*10+ch-'0';
}
}
return res*fuhao;
}
};
isalpha(ch):
isalpha(ch):判断字符ch是否为英文字母,
若为英文字母,返回非0(小写字母为2,大写字母为1)。
若不是字母,返回0。
在标准c中相当于使用“ isupper( ch ) || islower( ch ) ”做测试。
isdigit(ch)
使用isdigit函数可以判断字符是否为数字,属于ctype.h头文件;
但也包含在iostream头文件下。