C 如何计算除双引号或单引号以外的字符数?
我对编程和通过一本书学习C很陌生 本书的作者解释了逻辑运算符AND、NOT和OR,并给出了下面的示例,该示例计算除双引号或单引号和句点字符外的字符数 除了引号和句号之外,我不明白它是如何计算字符数的。我理解使用AND运算符时,这两个条件都应为真C 如何计算除双引号或单引号以外的字符数?,c,C,我对编程和通过一本书学习C很陌生 本书的作者解释了逻辑运算符AND、NOT和OR,并给出了下面的示例,该示例计算除双引号或单引号和句点字符外的字符数 除了引号和句号之外,我不明白它是如何计算字符数的。我理解使用AND运算符时,这两个条件都应为真 如果ch!=''&&ch!='\,,正在检查输入的字符是否为或,如果不是,则增加字符数,否则不增加。如果用户输入d或,它将满足条件,因为的ASCII值不等于或',计数将增加。我将尝试向您解释代码的主要部分: while ((ch = getcha
如果ch!=''&&ch!='\,,正在检查输入的字符是否为或,如果不是,则增加字符数,否则不增加。如果用户输入d或,它将满足条件,因为的ASCII值不等于或',计数将增加。我将尝试向您解释代码的主要部分:
while ((ch = getchar()) != PERIOD)
{
在这里,它将检查文本中包含的每个字符,只要字符不同于句点,因此它只检查句子中的所有字符
if (ch != '"' && ch != '\'')
charcount++;
}
在这里,如果条件为true,则向charcount添加1。如果要使if返回true,则两个ch!=''还有ch!='\一定是真的!&&运算符是,and要返回真1,两个条件都必须等于1。因此,如果字符等于或,则AND将返回0,因此我们不会将1添加到charcount中。对于getchar返回并从输入流存储在ch中的每个字符,如键盘或文件,它将测试它是否为双引号ch!=''如果这不是一个引语,那么它就是\ \是转义字符,表示“\是字符” 如果两者都不是,那么它将递增计数器charcount++
只要getchar不返回周期ch=getchar!=周期如果存在,则不会计算周期,因为代码将立即跳出威尔循环。您可以使用“继续”跳过:
#include<stdio.h>
#define PERIOD '.'
int main(void)
{
char ch;
int charcount = 0;
while ((ch = getchar()) != PERIOD)
{
if (ch != '"' && ch != '\''){
continue;
}
charcount++;
}
printf("There are %d non-quote characters.\n", charcount);
return 0;
}
如果字符不同于且不同于,则charcount将递增。如果ch!=“”&&,您是否理解此条件ch!='\?否则,我认为你最好从一些基本的C语言书开始。原始代码按预期工作,OP只是不理解它。您可以看到有10个非引号字符,而不是8.3+3''+2'=8。。。你能解释为什么是10个非引号字符吗。所以有18个非引号字符,我不知道为什么我忽略了蓝色的字符,但是OP需要这8个非引号字符…我对他的意图和打印消息感到困惑。他只需要有人解释他在书中读到的代码,因为他是C的新手,他不想在这里写任何代码这里的代码来自于书。
#include<stdio.h>
#define PERIOD '.'
int main(void)
{
char ch;
int charcount = 0;
while ((ch = getchar()) != PERIOD)
{
if (ch != '"' && ch != '\''){
continue;
}
charcount++;
}
printf("There are %d non-quote characters.\n", charcount);
return 0;
}
./program
Michi"""LoL'''Another'"LoL.
There are 8 non-quote characters.