sscanf运用正则表达式,将下面字符串中的 13 提取为数字,1234132423412 提取为字符串"QIRD: 13\r\n1234132423412";
时间: 2024-02-03 12:11:42 浏览: 84
Java通过正则表达式获取字符串中数字的方法示例
可以使用正则表达式和 sscanf 函数来实现:
```c
#include <stdio.h>
#include <regex.h>
int main() {
char str[] = "QIRD: 13\r\n1234132423412";
int num;
char str2[20];
// 定义正则表达式
regex_t regex;
regcomp(®ex, "([0-9]+)", REG_EXTENDED);
// 匹配数字并提取
regmatch_t pmatch[1];
if (regexec(®ex, str, 1, pmatch, 0) == 0) {
sscanf(str + pmatch[0].rm_so, "%d", &num);
printf("%d\n", num);
}
// 匹配字符串并提取
if (sscanf(str, "QIRD: %d\r\n%s", &num, str2) == 2) {
printf("%s\n", str2);
}
regfree(®ex);
return 0;
}
```
输出结果为:
```
13
1234132423412
```
阅读全文