我尝试以下代码使用正则表达式将数字从一个字符串读取到另一个字符串

char des[25]={0};
char *src="1234567890";
sscanf(src, "%[[0-9]{1,5}]s", des);
sscanf(src, "%[^[0-9]{1,5}$]s", des);


我只想要前5位数字。我在两个sscanf中都没有得到想要的输出。

最佳答案

这将从srcdes读取前5位数字

#include <stdio.h>

main() {
    char des[25]={0};
    char *src="1234567890";
    sscanf(src, "%5s\0", des);
    puts(des);
}


要仅读取数字,请将sscanf替换为:

sscanf(src, "%5[0-9]", des);

关于c - sscanf中的正则表达式有长度限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20628242/

10-11 03:47