我尝试过不同的功能,包括strtok()strcmp()strstr(),但我想我遗漏了一些东西。是否有方法匹配字符串中的确切子字符串?
例如:
如果我有名字:“谭”
我有两个文件名:“SomethingTan5346”和“nothingTangyrs634”
所以我怎样才能确保我匹配第一个字符串而不是两者都匹配呢因为第二个文件是给坦吉尔的还是用这种方法不可能?我做错事了吗?

最佳答案

解决方案取决于您对精确匹配的定义。
这可能对您有用:
遍历目标子字符串的所有匹配项。
C find all occurrences of substring
Finding all instances of a substring in a string
find the count of substring in string
https://cboard.cprogramming.com/c-programming/73365-how-use-strstr-find-all-occurrences-substring-string-not-only-first.html
等。
在确定匹配范围后,验证前面和后面的字符是否匹配/不匹配“精确匹配”的条件。
或者,
您可以利用C++中的正则表达式(我知道标签是“C”),使用#include <regex>或POSIX #include <regex.h>

关于c - C试图匹配确切的子字符串,仅此而已,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47050947/

10-11 22:06
查看更多