问题:
修改元音统计程序可使其统计读入的空格、制表符和换行的个数
代码:
#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。