问题描述:
编写一个程序,他每次读取一个单词,直到用户只输入q。然后,该程序指出有多少个单词以元音打头,有多少个单词以辅音打头,还有多少个单词不属于这两类。为此,方法之一是,使用isalpha()来区分以字母和其他字符打头的单词,然后对于通过了isalpha()测试的单词,使用if或switch语句来确定哪些以元音打头。程序运行情况略。
解决思路:
1.使用while循环结构,只有检测到输入一个字母q才结束循环。
2.结构体中使用string类型存储用户输入的单词。
3.首先使用isalpha()语句判断单词是否以字母打头,接着使用if语句判断是元音还是辅音,记录下这些类别单词的个数。
4.输出各类型单词的数量。
代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
cout << "enter words(q to quit)\n";
string word;
cin >> word;
int type1 = 0, type2 = 0, type3 = 0;
while (word != "q") {
if (isalpha(word[0])) {
if (word[0] == 'a' || word[0] == 'e' || word[0] == 'i' || word[0] == 'o' || word[0] == 'u')
type1++;
else
type2++;
}
else
type3++;
cin >> word;
}
cout << type1 << " words beginning with vowels.\n";
cout << type2 << " words beginning with consonants.\n";
cout << type3 << "others.\n";
return 0;
}