Оператор switch

Задания раздела 5.3.2
5.9. Напишите программу, использующую серию операторов if для подсчета количества гласных букв в тексте, прочитанном из потока cin.
5.10. Программа подсчета гласных имеет одну проблему: она не учитывает заглавные буквы как гласные. Напишите программу, которая подсчитывает гласные буквы как в верхнем, так и в нижнем регистре. То есть значение счетчика aCnt должно увеличиваться при встрече как символа 'a', так и символа 'A' (аналогично для остальных гласных букв).
5.11. Измените рассматриваемую программу так, чтобы она подсчитывала также количество пробелов, символов табуляции и новой строки.
5.12. Измените рассматриваемую программу так, чтобы она подсчитывала количество встреченных двухсимвольных последовательностей ff, f1, fi.
5.13. Каждая из приведенных ниже программ содержит распространенную ошибку. Выявите и исправьте каждую из них.

Программы 5.13

(a) unsigned aCnt=0, eCnt=0, iouCnt=0;
char ch=next_text();
switch (ch) {
case 'a': aCnt++;
case 'e': eCnt++;
default: iouCnt++;
}
(b) unsigned index=some_value();
switch (index) {
case 1:
int ix=getvalue();
ivec[ix]=index;
break;
degault:
ix=ivec.size()-1;
ivec [ix]=index;
}
(c) unsigned evenCnt=0, oddCnt=0;
int digit=get_num() % 10;
switch (digit) {
case 1,3,5,7,9:
oddcnt++;
break;
case 2,4,6,8,10:
evencnt++;
break;
}
(d) unsigned ival=512, jval=1024, kval=4096;
unsigned bufsize;
unsigned swt=get_bufCnt();
switch (swt) {
case ival:
bufsize=ival*sizeof(int);
break;
case jval:
bufsize=jval*sizeof(int);
break;
case kval:
bufsize=kval*sizeof(int);
break;
}

Читать далее «Оператор switch»