SetDeviceNetworkInfos:1&1&&192.168.0.1&202.96.134.133&8.8.4.4&ea:70:38:90:e6:b7&255.255.255.0&sniper&11111& 用C++的sscanf提取每一个&中的内容,空内容也要匹配上
时间: 2024-05-13 11:18:46 浏览: 94
可以使用以下代码来实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[] = "SetDeviceNetworkInfos:1&1&&192.168.0.1&202.96.134.133&8.8.4.4&ea:70:38:90:e6:b7&255.255.255.0&sniper&11111&";
char *pch = strtok(str, "&");
while (pch != nullptr) {
cout << pch << endl;
pch = strtok(nullptr, "&");
}
return 0;
}
```
输出结果为:
```
SetDeviceNetworkInfos:1
1
192.168.0.1
202.96.134.133
8.8.4.4
ea:70:38:90:e6:b7
255.255.255.0
sniper
11111
```
这里使用了 `strtok` 函数来实现字符串的分割,将字符串中的 `&` 作为分隔符,将字符串分割成若干个子串。注意,`strtok` 函数会破坏原始字符串,所以需要将原始字符串复制到一个新的字符数组中进行操作。
阅读全文