在用户输入数组中查找元音

时间:2017-04-17 03:16:37

标签: c++ arrays

//我是c ++的新手,我不了解所有语法规则以及指针之类的某些事情。我想知道如何使程序在输入数组中找到元音,请不要使用矢量建议。我知道我可能会这么做,但我想知道更好的原因和方法。

sendmsg bb2652fa-467c-44a1-a2f0-0f5e4363e2f3
call-command: execute
execute-app-name: playback
execute-app-arg: d:\vox\sample.vox
loops: 1
Event-UUID: play command id 369

3 个答案:

答案 0 :(得分:1)

您需要将输入的值设置为单词,并在每个字母后打印总和,因为您在循环内部打印了该单词。

答案 1 :(得分:1)

您需要在程序段中处理一些事情。

  1. 您需要创建一个char数组(例如word [20])来读取字符串。
  2. 您需要读取char数组中的行而不是int(cin >> n;)。
  3. 您无法使用'cin'读取字符串。
  4. 你需要在循环外打印总和(元音的数量)。

    #include<iostream>
    #include<string.h>
    using namespace std;
    
    int main()
    {
        int sum = 0;
        int n;
        char vowels[6] = {'a', 'e', 'i', 'o', 'u', 'y'};
        char word[20] = NULL;
        cout << "Enter word" << endl;
        while (getline(cin, word)) //read line of text including white space until enter key is pressed
        {
    
        }
        n=strlen(word);      //get the length of the input string  
        for(int i=0; i < n; i++)
        {
            for(int j=0; j < 6; j++) 
                if(word[i] == vowels[j])
                {
                    sum++;
                }      
        } 
        cout << sum;   //Print total number of vowles
        delete [] word;
        word = NULL;
    
        return 0;
    }
    

    这将产生所需的输出。

答案 2 :(得分:0)

您的代码中出现了一些错误:

首先,cin >> word不会将单词作为输入,只需要数字。这是因为word的类型为int

此外,您需要在for循环外打印sum,以便不会连续打印。