【问题标题】:How to print vowels from array如何从数组中打印元音
【发布时间】:2022-01-21 13:51:14
【问题描述】:

嘿,亲爱的能够兑现!

我正在编写我的作业程序,我需要在其中显示我的全名和我的姓名。使用一个数组,还可以从我的名字中找到元音,并在一列中一个一个地显示它们,最后还有元音的总数。我做了第一个目标,也完成了显示元音的总数,而我试图用如下图的数字一个一个地显示元音,但我没有任何人可以帮忙,请...

This image shows how to print out vowels

如果图像未打开,则图像文本如下所示:

My first name is: Bilal
MY I'd is: bc1234567890
last digit of i'd is: 0

vowel no 1 is: i
vowel no 2 is: a

Total vowels in my first name: 2

我试过了:

//for first name vowels
for(i1=0;i1<n1a[i1];i1++)
{
    switch(n1a[i1])
    {
        case 'A':
        case 'a':
        case 'E':
        case 'e':
        case 'I':
        case 'i':
        case 'O':
        case 'o':
        case 'U':
        case 'u':
        counter1++;
        break;
    }
    for(y=1;y<=counter1;y++)
    {
        cout<<"Vowel "<<y<<" is: "<<n1a[i1]<<endl;
    }
}
cout<<endl;
cout<<"Total Vowels Is/Are: "<<counter1<<endl;

【问题讨论】:

  • i1&lt;n1a[i1] 不是正确的循环条件。应该是n1a[i1] != '\0'(详细一点)。
  • 您也没有正确打印元音。相反,您 count 个元音,然后从数组中打印出那么多字符(不管它们是辅音还是元音)。要解决您的问题,您只需要 一个 循环,您可以在其中调用应该创建的新 isvowel 函数。如果它返回“true”,则打印当前字符,否则不打印任何内容。

标签: c++ arrays for-loop switch-statement


【解决方案1】:

看来你的意思是下面的for循环

for(i1=0; n1a[i1] != '\0'; i1++)

在switch语句内写

for(i1=0; n1a[i1] != '\0'; i1++)
{
    switch(n1a[i1])
    {
        case 'A':
        case 'a':
        case 'E':
        case 'e':
        case 'I':
        case 'i':
        case 'O':
        case 'o':
        case 'U':
        case 'u':
        counter1++;
        std::cout << "Vowel no " << counter1 << ": " << n1a[i1] << '\n';
        break;
    }
    //...
 

或者如果变量n1a 的类型为std::string 那么

for ( char c : n1a )
{
    switch( c )
    {
        case 'A':
        case 'a':
        case 'E':
        case 'e':
        case 'I':
        case 'i':
        case 'O':
        case 'o':
        case 'U':
        case 'u':
        counter1++;
        std::cout << "Vowel no " << counter1 << ": " << c << '\n';
        break;
    }

【讨论】:

  • 先生,我试试这个,但结果不准确我需要像图像中那样打印文本,但我不能在这里粘贴整个代码。
  • @Mehboob 我看不出与图像中显示的输出有任何区别。
  • 非常感谢先生的赞赏!我使用另一个给出正确输出的代码而不是我的代码: // loop while character is not null for( i1 = 0; n1a[i1] != 0; i1++ ) { char upcase = toupper( n1a[i1] );开关(大写){案例'A':案例'E':案例'I':案例'O':案例'U':++counter1; cout
  • @Mehboob 从您的问题来看,您是否需要将大写和小写元音视为单独的元音。
  • 先生,我是编程初学者。请不要介意,如果我用两个(如“Mehboob Shaukat”)或小写字母写我的名字,我只用大写字母写我的名字,所以如何处理这种情况
猜你喜欢
  • 2013-01-16
  • 2018-11-16
  • 1970-01-01
  • 2019-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多