首页 > 解决方案 > 小写到大写元音 C++

问题描述

我正在尝试解决一个问题,其中给我一串小写字符,我必须将元音转换为大写。( e.g. : "mother" becomes "mOthEr".)

我的尝试

#include <iostream>
#include <cstring>
using namespace std;

char s[20];
int i;

int main()
{
    cin.getline(s,20);
    for(i=0;i<20;i++)
    {
        if(s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u')
            s[i]=toupper(s[i]);
    }
    cout<<s;
}

有人能告诉我我做错了什么吗?我在其中一项测试中得到了错误答案

标签: c++string

解决方案


首先,如前所述,您将代码限制为最多 20 个字符,同时您可以使其更加流畅并允许使用可变长度std::stringstd::getline()。您可以通过使用字符串长度函数来做到这一点i < input.length()

变量i被声明为全局变量,这是一种矫枉过正。

您还需要让用户知道该怎么做;如果按照说明运行,控制台将显示为空白,除非您编写程序,否则您不知道发生了什么。你需要一些东西cout << "Enter Line to modify: ";来指导用户输入一些东西。

间距和正确的命名约定是您需要从第一天开始做的事情,以成为第二天性。无法告诉你我浪费了多少时间试图弄清楚程序员正在使用什么变量,这些变量的名称有 a、b、cc 等。给你所有的变量起有意义的名字,你以后会感谢我的。


推荐阅读