gpt4 book ai didi

c - 识别文本中的空格

转载 作者:行者123 更新时间:2023-12-02 05:55:05 25 4
gpt4 key购买 nike

我正在编写一个程序来破译基本文本文件中给出的句子、音节和单词。

程序逐个字符地循环遍历文件。它首先查看它是否是某种句末标记,例如 ! ? : ;.。然后,如果该字符不是空格或制表符,则假定它是一个字符。最后,它确定如果它是一个空格或制表符,并且它之前的最后一个字符是一个有效的字母/字符(例如,不是句末标记),那么它就是一个词。

我对细节不太了解,但这就是我遇到的问题。我的字数等于我的句子数。这解释的是,当有句尾标记时,它是否意识到单词停止,但真正的问题是空格被认为是有效字母。

这是我的 if 语句,用于确定所讨论的字符是否是单词中的有效字母:

else if(character != ' ' || character != '\t')

我已经在程序中排除了句末标记。 (如果实际上是原来的)。从 Ascii 表中读取,32 应该是空格字符。但是,当我输出所有使其进入该代码块的字符时,空格就在那里。

那我做错了什么?我怎样才能阻止空格通过这个 if?

提前致谢,我觉得这个问题可能有点含糊,或者措辞不当。如果您有任何疑问或需要澄清,请告诉我。

最佳答案

您不应依赖字符的实际数字:这取决于您的平台使用的编码,可能不是 ASCII。您可以通过简单地对其进行测试来检查任何特定字符。例如,测试是否 c是一个空格字符:

if (c == ' ')

可以工作,更易于阅读,并且便于携带。

如果你想跳过所有的空格,你应该使用#include <ctype.h>然后使用 isspace() :

if (isspace((unsigned char)c))

编辑:正如其他人所说,您检查“不是空格”的条件是错误的,但上述观点仍然适用。因此,您的条件可以替换为:

if (!isspace((unsigned char)c))

关于c - 识别文本中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2208244/

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