【发布时间】:2012-10-26 10:16:13
【问题描述】:
假设我有一个文件,其中包含带有空格的随机字符,并且 \n 也包含随机字符。
我想查找这组字符,例如:UU、II、NJ、KU。所以目的是读取文件,寻找这类组并说出文件中有多少。
我的问题是空格和\n,因为如果我找到其中之一,我应该跳过它并再次搜索组。我找到了一个可以帮助我的解决方案,函数 strtok_r 。
http://www.codecogs.com/reference/computing/c/string.h/strtok.php?alias=strtok_r
我认为这将隔离完整的字符串,以便我可以一次读取一个。
这是一个好的解决方案还是应该采取其他方法?
【问题讨论】:
-
逐行读取文本文件和缓冲区上的
strstr()。使用strtok_r(),您会产生不必要的令牌。 -
您应该始终考虑极端情况,这样我们就不必问了。如果你看到 UUU 或 KUU 会发生什么?
-
我不知道,我会逐个字符地读取字符,但是按 2 处理 2,这意味着我会看到 U,然后看到另一个 U 和 count++,然后我会读取下一个字符,依此类推,如果我发现空格或与字母不同的任何内容,我将丢弃它和我之前读过的字符
-
使用 strtok_r() 是一个很好的解决方案,因为它可以在循环中使用。如果您将 NULL 作为第一个参数传递,它将返回下一个令牌。在使用 strstr() 时,您必须维护一个指针来跟踪您已经阅读的内容。去 strtok_r()