C++怎么判断string型字符是数字
时间: 2023-06-04 19:03:12 浏览: 610
要判断一个 string 型字符是否为数字,可以使用以下方法:
1. 判断字符串是否为空,为空则不是数字
2. 循环判断字符串中每个字符是否为数字,如果有一个不是数字则不是数字
3. 如果字符串以字符串 "0" 开头,那么字符串中只能有一位,否则不是数字
4. 如果字符串以字符串 "-0" 或 "+0" 开头,那么字符串中只能有两位,否则不是数字
5. 若不是以上三种情况,则字符串中每一位都必须为数字才是数字
C++代码示例:
```c++
bool isNumber(string str) {
if (str.empty()) { // 判断字符串是否为空
return false;
}
int start = 0;
if (str[0] == '-' || str[0] == '+') { // 如果字符串以 "-" 或 "+" 开头,则从第二个字符开始判断
start = 1;
if (str.size() == 1) { // 如果字符串长度只有 1,那么字符串不是数字
return false;
}
}
if (str[start] == '0') { // 如果字符串以 "0" 开头,那么字符串中只能有一位,否则不是数字
return str.size() == start + 1;
}
for (int i = start; i < str.size(); i++) { // 循环判断字符串中每个字符是否为数字
if (!isdigit(str[i])) {
return false;
}
}
return true;
}
```
注意:此函数只能判断整数是否为数字,如果需要判断浮点数是否为数字,则需要更复杂的判断方法。
阅读全文