c++ - RE:为什么我从这个计数器中得到错误的元音值?...原始代码
问题描述
说明:使用返回值函数编写一个程序,提示用户输入一个字符序列并输出元音的个数。这是老师给的问题。。
#include <iostream>
using namespace std;
bool isVowel(char ch);
int main() {
char ch;
cout << "Enter a character: ";
cin >> ch;
cout << ch << " is a vowel: " << isVowel(ch) << endl;
return 0;
}
bool isVowel(char ch){
if (ch=='A' || ch=='E' || ch=='I' || ch=='O' || ch=='U' ||
ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u'){
return true;
} else
return false;
}
解决方案
char
是一个字符,而不是一个句子。对于一个句子,使用 a string
。
string s;
cout << "Enter a sentence: ";
cin >> s;
然后使用循环遍历句子的每个字符
for (char ch : s)
{
...
}
然后用于isVowel
测试单个字符,如果找到则增加计数。线索在名称isVowel
中,不是countVowels
,所以isVowel
应该测试单个元音并返回真假,而不是计算元音的数量。
int vowels = 0;
for (char ch : s)
{
if (isVowel(ch))
vowels++;
}
最后写isVowel
测试单个字符。
bool isVowel(char ch)
{
return ch=='A' || ch=='E' || ch=='I' || ch=='O' || ch=='U' ||
ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u';
}
推荐阅读
- kotlin - 集合大小扩展功能
- bash - 如何在我的输出中包含返回空白值的 grep 搜索?
- java - 将消息发送到运行时定义的 Kafka 主题
- .net - .NET 5 可以替代 .NET Core 3.1 无法替代的 .NET Standard 吗?用例
- google-sheets - 按列名过滤行的下拉菜单 - gsheet
- flutter - Flutter中如何获取第一个索引值
- python - 在 matplotlib 中使用水平条形图时加宽/加长 y 区域的一种方法
- html - CSS菜单悬停不适用于所有项目
- javascript - 我收到一个错误,因为我必须使用一个数组来呈现一个子集合,尽管我使用了一个数组
- c - 从文件加载向量结构