gpt4 book ai didi

c - 使用 getchar() 计算空格、制表符和换行符

转载 作者:太空宇宙 更新时间:2023-11-04 08:01:16 25 4
gpt4 key购买 nike

我目前正在编写一个程序,它接受用户输入的句子并计算句子中空格、制表符和换行符的数量,然后打印这些值。

输入以 !.? 字符结束。

我遇到的问题是,当在输入末尾输入上述任何字符时,我的程序似乎没有结束。

这是当前程序:

#include <stdio.h>

int main(void)
{
int space = 0, tab = 0, newline = 0;
int sentence;

printf("Enter a sentence (end by '.' or '?' or '!'):");

do{
sentence = getchar();

if(sentence == ' '){
++space;
}
else if(sentence == '\t'){
++tab;
}
else if(sentence == '\n'){
++newline;
}
}
while((sentence != '.')||(sentence != '!')||(sentence != '?'));

printf("Number of space characters: %d\n", space);
printf("Number of new line characters: %d\n", newline);
printf("Number of tabs: %d\n", tab);

return 0;
}

我很困惑,感谢任何帮助。

最佳答案

只需替换|| (或)与 && (和)因为在您的情况下,三个条件中的两个对于每个字符始终为真,这就是 while 循环进入无限的原因。

关于c - 使用 getchar() 计算空格、制表符和换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46652206/

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