gpt4 book ai didi

从 stdin 计算简单赋值运算符 "="

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

以下代码应通过逐个字母地读取用户(即兴的 C 代码)编写的文本中的简单赋值 ("=")。我也在尝试进行检查,如果运算符(operator)不是所要的运算符(operator),例如“小于或等于”运算符 - “<=”。

当达到 CTRL+Z 时应该会显示输出 (EOF)。运行时,输出始终为0,不能预先写入任何文本——直接显示输出。

编译器的错误列表中没有弹出任何错误。可能是 scanf 不在循环内,或者变量“i”没有正确分配或根本没有分配给文本数组?

    int count=0, i;
char text[100];

printf("\nEnter a program code - to end please hit enter followed by CTRL+Z:\n");
scanf("%c", &text)!=EOF;
for(i=0; i<strlen(text); i++){
if (text[i]=='=')
count++;
else if(text[i+1]=='=')
continue;
else if(text[i-1]=='<'||text[i-1]=='>'||text[i-1]=='!'||text[i-1]=='=')
continue;
}
printf("\nNumber of '=' operators are: %d\n", count);

最佳答案

合理的解决方案如下:

      while(gets(text)){
for(i = 0; i < strlen(text); i++)
{
if (text[i]=='=')
{
if(text[i+1]=='=')
continue;
if(text[i-1]=='<'||text[i-1]=='>'||text[i-1]=='!'||text[i-1]=='=')
continue;
count++;
}
}

EOF 可以是 scanf("%s", &text)!=EOF 在 while 循环中的一个选项。另请注意,计数器应放在最后一个 if 语句之后,以便正确检查。否则,它会将 != <= 等运算符与简单的“=”一起计算在内。

关于从 stdin 计算简单赋值运算符 "=",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21789707/

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