c - 检测空格是否被按下3次?

标签 c whitespace detection getchar

在我的程序中,我需要检测空格键是否被按下 3 次,然后将其替换为\n。

我使用 getchar 来获取输入并检测一个空格没有问题,但如果我输入 3 个空格来检查它就不起作用。 非常感谢任何帮助

到目前为止,这是我的代码,如果我只检查一个空格键,那么它工作得很好,但如果我输入 3 个空格键,它就不会检测到它

if (c == ' ')
{
putchar('\n');
}

最佳答案

您可以计算连续空格的数量。像这样的东西:

int c;
int spaces = 0;
while((c = getchar()) != EOF)
{
    if (c == ' ')
    {
        ++spaces;
        if (spaces == 3)
        {
            putchar('\n');
            spaces = 0;
        }
    }
    else
    {
        spaces = 0;
    }
}

关于c - 检测空格是否被按下3次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49552330/

相关文章:

c - 将文件中的行保存到新字符串中。 C

string - 如何在 MATLAB 中将元胞数组中的字符串与它们之间的空格连接起来?

audio - 我需要分析许多音频WAV文件中的特征性噪声,想法吗?

algorithm - 在 2d 图像算法上检测多个相似的石头?

javascript - 如何通知用户Flash未安装(不使用javascript)

康威的生命游戏 C

您可以使用 scanf 测试 _Bool 类型的有效输入吗?关于 C

c - 为什么 Eclipse 生成的头文件以#ifndef 和#define 开头?

c - 强制 fscanf 消耗可能的空白

python - 在 Python 中用逗号分隔并去除空格