c - 在 while 循环中替换字符流中的下一个字符

标签 c

我应该设计一个计算单词数的程序,所以这是我代码的一部分

 while ((c=getc(file)) != EOF)

   { if ((isspace(c) || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v')) { ++word; } }

我的代码的逻辑应该首先查看第一个字符,如果它是非空格,那么它应该查看下面的字符,如果它是空格,那么它应该计算一个单词

但是,我知道如何替换当前字符(在我的代码中),但我不知道如何替换以下字符?

基本上,我想以这种逻辑形式编写代码(c+是c后面的字符)

while ((c=getc(file)) != EOF)
  { if ( c is non-space) 
     { if (c+ is space)
        { word++ } 
            } 
          }

最佳答案

prevC = ' ';
while ((c=getc(file)) != EOF)
{ 
    if ((prevC != ' ') &&
    (isspace(c) || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v')) 
    { 
    ++word;
    } 
    prevC = c;
}

您需要维护先前读取的字符并在下一次迭代中进行比较

关于c - 在 while 循环中替换字符流中的下一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49375071/

相关文章:

使用宏的 C 枚举

c - Haskell FFi 与 c2hs : Better out-marshalling of structs

c - TCP 绑定(bind)没有进程绑定(bind)的先验知识

c - lseek 稀疏文件与常规文件的比较导致意外结果?

c++ - 适用于 Windows Media Foundation 的 Visual Studio

c - 无法通过指针索引访问结构体数组成员

c - 如何从文件中读取一行?

c - 如何在没有任何附加参数的情况下获取函数中的数组大小

c - 所有结构类型都应该包含在同一个头文件中吗?

c - 在 C 和 Win32 api 中轮询键盘