写一段c程序,把“rsrp:-107,rsrq:-6,rssi:-81,sinr:11”数字提取出来
时间: 2023-03-02 17:54:37 浏览: 147
以下是可以提取出“rsrp:-107,rsrq:-6,rssi:-81,sinr:11”数字的C程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "rsrp:-107,rsrq:-6,rssi:-81,sinr:11"; // 待提取的字符串
char *token = strtok(str, ","); // 使用逗号分割字符串,返回第一个子字符串
while(token != NULL) { // 当还有子字符串时
if(strncmp(token, "rsrp", 4) == 0) { // 如果子字符串以"rsrp"开头
int rsrp = atoi(token+5); // 提取数字部分,转换为整数
printf("rsrp=%d\n", rsrp); // 输出rsrp的值
}
else if(strncmp(token, "rsrq", 4) == 0) { // 如果子字符串以"rsrq"开头
int rsrq = atoi(token+5); // 提取数字部分,转换为整数
printf("rsrq=%d\n", rsrq); // 输出rsrq的值
}
else if(strncmp(token, "rssi", 4) == 0) { // 如果子字符串以"rssi"开头
int rssi = atoi(token+5); // 提取数字部分,转换为整数
printf("rssi=%d\n", rssi); // 输出rssi的值
}
else if(strncmp(token, "sinr", 4) == 0) { // 如果子字符串以"sinr"开头
int sinr = atoi(token+5); // 提取数字部分,转换为整数
printf("sinr=%d\n", sinr); // 输出sinr的值
}
token = strtok(NULL, ","); // 继续使用逗号分割字符串,返回下一个子字符串
}
return 0;
}
```
这个程序使用strtok函数将字符串按照逗号分割成多个子字符串,并且使用strncmp函数判断子字符串的开头是否是"rsrp"、"rsrq"、"rssi"或"sinr"。如果是,就使用atoi函数提取数字部分,转换为整数并输出。
阅读全文