gpt4 book ai didi

检查 Substring 是否多次出现在字符串中?

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

假设我有一个文件:

f56,5 d23,4

我在“f”和逗号之后获取值(与 d 相同),所以我这样做:(使用 fgets 读取文件时)

while (fgets(buf,100,file) != NULL)
{
temp = strstr(buf,"f"); //where temp is a (char * )
if(temp != NULL)
{
//An int defined previously
x = atol(temp+1); //get the value 56
temp = strstr(buf,","); //get the value 5
y = atol(temp+1); //get the value 5
}

temp = strstr(buf,"d");
if(temp != NULL)
{
a = atol(temp+1); //get the value 24
temp = strstr(buf,","); //get the value 4?
b = atol(temp+1); //get the value 4?
}


}

这种方法可行,但是 a 和 b 的值不正确,a 有时为真,但 b 始终为 y 的值(前一个逗号值)。我不太确定如何在这里继续,我尝试使用另一个指针在代码中使用 strstr 但这似乎不起作用,我们将不胜感激。

最佳答案

however b is always the value of y (previous comma value)

这是因为您再次从头开始搜索逗号,所以不是获取与 'd' 相关联的逗号你得到一个与 'f' 相关联的再次。

要解决此问题,请替换此行

temp = strstr(buf, ","); //get the value 4?

用这个:

temp = strstr(temp+1, ","); //yes, get the value 4!

这将开始搜索 'd' 之后的下一个逗号,给你正确的结果。

关于检查 Substring 是否多次出现在字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29051308/

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