c++ - 小写到大写元音 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;
}
有人能告诉我我做错了什么吗?我在其中一项测试中得到了错误答案。
解决方案
首先,如前所述,您将代码限制为最多 20 个字符,同时您可以使其更加流畅并允许使用可变长度std::string
和std::getline()
。您可以通过使用字符串长度函数来做到这一点i < input.length()
。
变量i
被声明为全局变量,这是一种矫枉过正。
您还需要让用户知道该怎么做;如果按照说明运行,控制台将显示为空白,除非您编写程序,否则您不知道发生了什么。你需要一些东西cout << "Enter Line to modify: ";
来指导用户输入一些东西。
间距和正确的命名约定是您需要从第一天开始做的事情,以成为第二天性。无法告诉你我浪费了多少时间试图弄清楚程序员正在使用什么变量,这些变量的名称有 a、b、cc 等。给你所有的变量起有意义的名字,你以后会感谢我的。
推荐阅读
- kubernetes - Kubernetes - 如何定义使用 yaml 中的文件构建的 ConfigMap?
- office-ui-fabric - 我可以为 TextField 的图标指定一个单独的 onClick 处理程序吗?
- java - 没有适用于 nexus 3 的正确文档。所以似乎我在搜索令牌密钥时遇到了问题
- scilab - 不兼容的输出参数。[scilab]
- scala - Spark 上的 XGBoost 因 SIGSEV 崩溃
- wiki - 微软团队中增强的 wiki 功能?
- html - 移动和平板电脑分辨率上的导航切换按钮位置
- python-3.x - 使用 shapely 返回相交的多线串的坐标
- python - 从 pandas Dataframe 中提取月份数据
- http-status-code-404 - 在微服务中请求 userboostrap 时返回 404 错误