当前位置: 首页 > 知识库问答 >
问题:

计算句子中每个单词的元音[重复]

薄鸿远
2023-03-14

给定一个句子,我希望能够数出每个单词中有多少个元音。

示例输入:

Hello this is a test for the program.

示例输出:

2 1 1 1 1 1 1 2

我最初的想法是有2个同时循环。第一个循环直到满足EOF以结束程序,第二个(嵌套的)同时循环将运行直到满足空格 (" ") ,同时还对当前单词中的元音求和。一旦遇到空格,它将打印出元音的当前值,第二个同时循环将结束并重新开始(元音计数器重置回0)。

这是我为此编写的代码:

#include <stdio.h>
#include <ctype.h>
main() {
  int vowels = 0;
  char c;
  while ((c = getchar()) != '\n') {
    while((c = getchar()) != " "){
      if(tolower(c) =='a' || tolower(c) =='e' || tolower(c) =='i' || tolower(c) =='o' || tolower(c) =='u') vowels++;
    }
    printf("%d", vowels);
  }
}

然而,这导致语法错误,我不能找出我的错误。

第6行:

while ((c = getchar()) != '\n') {

我这样做是正确的吗?还是我应该采取不同的方法?

共有2个答案

林龙野
2023-03-14
#include <stdio.h>
#include <ctype.h>

int main() {
    int c, vowels = 0;

    for(;;){
        c = tolower(getchar());
        if(c=='a' || c=='e' || c=='i' || c=='o' || c=='u') {
            ++vowels;
        } else if(isspace(c)){
            printf("%d ", vowels);
            if(c == '\n')
                break;
            vowels = 0;
        }
    }
    printf("\n");
    return 0;
}
商焕
2023-03-14

您的错误在下一行。它应该是而((c=getchar()) ! = ' '),带有单引号(撇号),因为您想要的是字符文字,而不是字符串文字。

 类似资料:
  • 我一直在试图弄清楚如何计算句子每个单词中的元音和字符。例如 在句子 < code>hello : 5个字符,2个元音 <代码>有:5个字符,2个元音 。我见过完整句子做同样事情的代码。但不是一个字一个字地。 下面是我一直在做的编码 输入将全部。我很难弄清楚这一点。 在运行代码时,我没有得到元音计数。我能把句子分开。但元音计数没有发生。

  • 我需要找到一个单词中元音的计数。然而,当我比较单词中的字母是否是元音时, 举个例子,我做的就像下面这个, ……)//其余部分被省略 语句变得太长。有没有办法将它们与正则表达式或类似正则表达式的比较进行比较,并给我字符串中元音出现的次数?

  • 问题内容: 我正在编写一个非常基本的Java程序,该程序可以计算句子中每个单词的频率,到目前为止,我设法做到了这一点 我已经提取了每个字符串并将其存储在数组中,现在的问题实际上是如何计算每个“单词”重复出现的次数以及如何显示以使重复的单词不会多次显示,您能帮我这个忙吗?一个? 问题答案: 使用以单词为键的地图并将其计为值,像这样 如果不允许使用java.util,则可以使用一些排序算法对arr进行

  • 我想计算一个句子中重复单词或重复单词的总数。这里我可以打印单词,但不能计算这些单词。 我期望输出:- 给定字符串中的重复单词:大黑色 给定字符串中的重复单词总数:2 输出如下: 给定字符串中的重复单词:大黑色 给定字符串中的重复单词总数:10 总计数显示为10,而不是2。

  • 我想计算一下给定句子中出现了多少个单词。我使用的是C编程语言。它不能计算最后一个字。在给定的字符串中,它计算每个单词发生的次数。如果有像这样的句子,那么程序应该算。但在我的情况下,它不算作。而不是计算,然后: 我的代码:

  • 以下是一个练习的说明,我必须解决cs50 pset2可读性问题(从站点粘贴副本): 你的程序应该计算文本中字母、单词和句子的数量。您可以假设字母是从a到z的任何小写字符或从a到z的任何大写字符,由空格分隔的任何字符序列都应算作一个单词,句号、感叹号或问号的任何出现都表示句子的结尾 这些不是完整的说明,只是我有问题的部分。 我知道如何计算课文中的字母数,但我不知道如何计算单词和句子。我试着用谷歌搜索