gpt4 book ai didi

c - 在 C 中解析/匹配字符串出现

转载 作者:太空宇宙 更新时间:2023-11-04 04:58:10 25 4
gpt4 key购买 nike

我有以下字符串:

const char *str = "\"This is just some random text\" 130 28194 \"Some other string\" \"String 3\""

我想得到整数 28194当然整数会变化,所以我不能做 strstr("20194") .

所以我想知道获取该字符串部分的好方法是什么?

我正在考虑使用 #include <regex.h>我已经有了一个匹配正则表达式的过程,但不确定 C 中的正则表达式如何使用 POSIX 样式表示法。 [:alpha:]+[:digit:]以及性能是否会成为问题。或者使用 strchr,strstr 会更好吗? ?

任何想法将不胜感激

最佳答案

如果你想使用正则表达式,你可以使用:

const char *str = "\"This is just some random text\" 130 28194 \"Some other string\" \"String 3\"";
regex_t re;
regmatch_t matches[2];
int comp_ret = regcomp(&re, "([[:digit:]]+) \"", REG_EXTENDED);
if(comp_ret)
{
// Error occured. See regex.h
}
if(!regexec(&re, str, 2, matches, 0))
{
long long result = strtoll(str + matches[1].rm_so, NULL, 10);
printf("%lld\n", result);
}
else
{
// Didn't match
}
regfree(&re);

你是对的,还有其他方法。

编辑:更改为使用非可选重复并显示更多错误检查。

关于c - 在 C 中解析/匹配字符串出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2614246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com