Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 检查子字符串是否多次出现在字符串中?_C_File_Parsing_Pointers - Fatal编程技术网

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

C 检查子字符串是否多次出现在字符串中?,c,file,parsing,pointers,C,File,Parsing,Pointers,假设我有一个文件: f56,5 d23,4 我得到的是在“f”和逗号之后的值(和d是一样的),所以我这样做: (使用fgets读取文件时) 然而,这类工作,a和b的值不正确,a有时是真的,然而b总是y的值(以前的逗号值)。我真的不知道如何在这里继续,我已经尝试使用另一个指针在代码中使用strstr,但这似乎不起作用,任何帮助都将不胜感激 但是b始终是y的值(以前的逗号值) 这是因为您将再次开始从头搜索逗号,因此不再获取与'd'关联的逗号,而是再次获取与'f'关联的逗号 要解决此问题,请更换此线

假设我有一个文件:

f56,5 d23,4
我得到的是在“f”和逗号之后的值(和d是一样的),所以我这样做: (使用fgets读取文件时)

然而,这类工作,a和b的值不正确,a有时是真的,然而b总是y的值(以前的逗号值)。我真的不知道如何在这里继续,我已经尝试使用另一个指针在代码中使用
strstr
,但这似乎不起作用,任何帮助都将不胜感激

但是
b
始终是
y
的值(以前的逗号值)

这是因为您将再次开始从头搜索逗号,因此不再获取与
'd'
关联的逗号,而是再次获取与
'f'
关联的逗号

要解决此问题,请更换此线路

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

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

这将开始搜索
'd'
之后的下一个逗号,为您提供正确的结果。

您的意思是它将在此处得到值4吗?不是5?@user3739406是的,您将获得
4
temp = strstr(temp+1, ","); //yes, get the value 4!