判断c++字符串是否为数字
时间: 2023-11-15 20:59:50 浏览: 403
判断C++字符串是否为数字有多种方法,以下是三种常见的方法:
1. 遍历判断:遍历字符串中的每个字符,判断其是否在ASCII数字的范围内。如果都在,则返回true,否则返回false。
2. 使用stringstream:将字符串输入到stringstream中,如果不是纯数字会设置failbit,可以通过判断failbit来确定是否为数字。
3. 使用C库函数:使用atoi、atol等函数将字符串转换为数字,如果非纯数字会返回0,可以通过判断返回值是否为0来确定是否为数字。
以下是示例代码:
```
//方法1:遍历判断
bool isNum(string str) {
for (int i = 0; i < str.size(); i++) {
int tmp = (int)str[i];
if (tmp >= 48 && tmp <= 57) {
continue;
} else {
return false;
}
}
return true;
}
//方法2:使用stringstream
bool isNum(string str) {
stringstream sin(str);
double d;
char c;
if(!(sin >> d)) {
return false;
}
if (sin >> c) {
return false;
}
return true;
}
//方法3:使用C库函数
int isNum(const char *st) {
int num = atoi(st);
if(num != 0) return 0;
else return -1;
}
```
以上三种方法都可以判断C++字符串是否为数字,具体使用哪种方法取决于实际情况。
阅读全文