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!