用cplusplus实现提取X-GB-Ver:3.0中的3.0
时间: 2023-05-19 12:02:49 浏览: 174
可以使用正则表达式来提取X-GB-Ver:3.0中的3.0,具体实现如下:
```cpp
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string str = "X-GB-Ver:3.0";
std::regex re("\\d+\\.\\d+");
std::smatch match;
if (std::regex_search(str, match, re)) {
std::cout << match[0] << std::endl;
}
return 0;
}
```
输出结果为:
```
3.0
```
相关问题
用cplusplus实现提取REGISTER sip:60010802002000000103@10.5.1.79:5062 SIP/2.0\r\nCall-ID: 7cc6a2c51090441ea4760beabc1bc9aa\r\nX-GB-Ver:3.0\r\nContact: <sip:34020000001320000001@10.5.1.76:5060>\r\n"中的X-GB-Ver版本号3.0
可以使用正则表达式来提取X-GB-Ver版本号3.0,具体实现代码如下:
```cpp
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string str =
"REGISTER sip:60010802002000000103@10.5.1.79:5062 SIP/2.0\r\nCall-ID: "
"7cc6a2c51090441ea4760beabc1bc9aa\r\nX-GB-Ver:3.0\r\nContact: "
"<sip:34020000001320000001@10.5.1.76:5060>\r\n";
std::regex rgx("X-GB-Ver:(\\d+\\.\\d+)");
std::smatch match;
if (std::regex_search(str, match, rgx)) {
std::cout << "X-GB-Ver版本号: " << match[1] << std::endl;
} else {
std::cout << "未找到X-GB-Ver版本号" << std::endl;
}
return 0;
}
```
输出结果为:
```
X-GB-Ver版本号: 3.0
```
用cplusplus读取Deploy: input_shape: - -1 - 3 - 352 - 288
这是一个YAML格式的文本,可以使用第三方库如YAML-CPP来读取。
以下是一个示例代码:
```cpp
#include <iostream>
#include <yaml-cpp/yaml.h>
int main() {
std::string yamlText = "Deploy:\n input_shape:\n - -1\n - 3\n - 352\n - 288\n";
YAML::Node root = YAML::Load(yamlText);
std::cout << root["Deploy"]["input_shape"][0].as<int>() << std::endl; // 输出 -1
std::cout << root["Deploy"]["input_shape"][1].as<int>() << std::endl; // 输出 3
std::cout << root["Deploy"]["input_shape"][2].as<int>() << std::endl; // 输出 352
std::cout << root["Deploy"]["input_shape"][3].as<int>() << std::endl; // 输出 288
return 0;
}
```
阅读全文