qstring str= “威胁=111,类型=,等级=2级 怎么截取=号后面的数字 等号后面没有数字用0表示
时间: 2024-09-20 10:08:09 浏览: 30
QString的常用方法(小结)
5星 · 资源好评率100%
可以使用C++的字符串处理函数来截取字符串`str`中等号`=`之后的数字。如果等号后面没有数字,则添加0。这里是一个简单的示例:
```cpp
#include <iostream>
#include <sstream>
std::string str = "威胁=111,类型=,等级=2级";
// 定义一个函数来获取等号后的值,如果没有就返回0
int get_number(const std::string &s) {
size_t pos = s.find_last_of('='); // 查找最后一个等号的位置
if (pos == std::string::npos) { // 如果找不到等号,返回0
return 0;
}
std::string number_part = s.substr(pos + 1); // 截取从等号到末尾的部分
try {
int num = std::stoi(number_part); // 尝试转换为整数
return num;
} catch (...) {
return 0; // 转换失败,返回0
}
}
int main() {
int threat = get_number(str);
int level = get_number(str); // 也尝试获取等级部分
std::cout << "威胁级别: " << threat << "\n";
std::cout << "等级: " << level << "\n"; // 输出结果
return 0;
}
```
这个程序会首先查找最后一个等号的位置,然后截取其后的部分作为字符串。如果能成功转换成整数,就返回该数值;否则返回0。
阅读全文