写一段c程序,将“LTE,FDD,rsrp:-107,rsrq:-6,rssi:-81,sinr:11”数字提取出来
时间: 2023-03-02 22:16:39 浏览: 121
5G(NR)网络中的RSRP, RSSI, RSRQ and SINR.docx
5星 · 资源好评率100%
以下是一个简单的C程序,可以将字符串中的数字提取出来:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[] = "LTE,FDD,rsrp:-107,rsrq:-6,rssi:-81,sinr:11";
char *p, *q;
int num;
p = str;
while (*p != '\0') {
if (*p >= '0' && *p <= '9') {
num = strtol(p, &q, 10);
printf("%d\n", num);
p = q;
} else {
p++;
}
}
return 0;
}
```
这个程序首先定义了一个字符串 `str`,其中包含了待提取的数字。然后,程序通过定义两个指针 `p` 和 `q` 来遍历字符串。如果当前指针指向的字符是数字,那么程序就使用 `strtol()` 函数将这个数字转换为整数,并输出到屏幕上。如果当前指针指向的字符不是数字,那么程序就继续向前遍历字符串,直到找到下一个数字。
对于给定的字符串“LTE,FDD,rsrp:-107,rsrq:-6,rssi:-81,sinr:11”,程序会输出以下数字:
```
-107
-6
-81
11
```
这些数字是从字符串中提取出来的,其他的字符都被忽略了。
阅读全文