我正在尝试解决一个给我一串小写字符的问题,我必须将元音转换为大写。
(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;
}
有人可以告诉我我做错了什么吗?我在其中一项测试中得到了错误答案。
答案 0 :(得分:2)
首先,如前所述,您将代码限制为最多20个字符,同时可以使用std::string
和std::getline()
使代码更流畅,并允许长度可变。您可以使用字符串长度函数i < input.length()
。
变量i
被声明为全局变量,这是一个过大的杀伤力。
您还需要让用户知道该怎么做;如果按照说明运行,则控制台将显示为空白,除非您编写了该程序,否则您将不知道发生了什么。您需要使用cout << "Enter Line to modify: ";
之类的内容来指导用户键入内容。
间隔和适当的命名约定是您从第一天开始就需要做的事情,以便成为第二自然。无法告诉您我浪费了多少时间试图弄清楚程序员正在使用的变量具有诸如a,b,cc之类的名称。给所有变量起个有意义的名字,将来您会感谢我的。