问题:

修改元音统计程序可使其统计读入的空格、制表符和换行的个数

代码:

#include <iostream>

using namespace std;

int main()
{
	char ch;
	string str;
	int aCnt = 0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0, spaceCnt = 0;
	int brCnt = 0, tabCnt = 0;
	while (cin.get(ch))
	{
		switch (ch)
		{
		case 'a':case 'A':
			aCnt++;
			break;
		case 'e':case 'E':
			eCnt++;
			break;
		case 'i':case 'I':
			iCnt++;
			break;
		case 'o':case 'O':
			oCnt++;
			break;
		case 'u':case 'U':
			uCnt++;
			break;
		case ' ':
			spaceCnt++;
			break;
		case '\n':
			brCnt++;
			break;
		case '\t':
			tabCnt++;
			break;
		default:
			break;
		}
	}
	cout<<aCnt<<" "<<eCnt<<" "<<iCnt<<" "<<oCnt<<" "<<uCnt<<endl;
	cout<<brCnt<<" "<<tabCnt<<" "<<spaceCnt<<endl;
	return 0;
}

总结:

(1)cin的>>输入操作符将空字符(空格、tab和回车)当作输入的结束,故使用cin.get(ch)方法,可获得空格、回车和tab等特殊字符。

(2)switch语句中的case标号必须是整型常量表达式,且每一个case语句都要使用break跳出循环。

(3)strstr()搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL。

posted on 2015-01-20 19:45  Giser-阿飞  阅读(515)  评论(0编辑  收藏  举报