Практикум ргппу 2017 3 Аннотация
Скачать 3.14 Mb.
|
Пример 2. Дан текст, содержащий русские буквы. Заменить в тексте все строчные буквы заглавными. В C++ нет функций, которые преобразовывали бы строчные буквы в заглавные, тем более, если это русские буквы. Для решение этой задачи создадим функцию преобразования строчных русских букв в заглавные: string upperRu(string str) Код программы, использующий эту функцию, будет иметь вид: # include # include #include # include using namespace std; string upperRu(string str); void main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); string text1, text2; cout<< "Введите текст" ; getline(cin,text1); 144 text2=upperRu(text1); cout< } Блок схема функции upperRu: upperUp(string str) up[]={ „А‟,…,‟Я‟} lo[]={ „а‟,…,‟я‟} s=str i=0, …, s.length()-1 j=0, …, 32 s[i]=lo[j] s[i]=up[j] s Да Нет Массив заглавных русских букв Массив строчных русских букв Перебор символов в строке Перебор русских строчных букв Если найдена русская строчная буква Строчная русская буква заменяется на эту же заглавную букву Пример 3. Дан текст. Получить из этого текста новую строку, в которой отсутствуют пробелы. Исходные данные: Строка s – типа string. Результат: Строка s1 без пробелов. Следует обратить внимание, что после удаления символа индекс символа i не изменяется из-за сдвига символов после удаления. Тестовый пример: при s=‖Разделение строки на отдельные слова‖ конечный результат: s1=‖Разделениестрокинаотдельныеслова‖ 145 Ввод s n=s.length() i=0 i s1=s1+s[i] Вывод s1 да нет да нет Ввод строки Определение количества символов в строке Задание первого просматриваемого символа Если просмотр строки не окончен Если это символ не пробел Добавление в новую строку символа отличного от пробела Переход к следующему символу Вывод новой строки i=i+1 s1= ”” Очистка новой строки Задание 2. Написать и отладить программу для примера 3 Контрольные вопросы 1. Чем С-строки отличаются от обычного массива символов. 2. В чем заключается недостаток использования оператора ввода >> для строк. 3. Почему не рекомендуется смешивать для ввода оператор >> и getline. Как избежать ошибок при таком смешивании. 4. Какие преимущества имеет класс string перед C-строками. 5. Какую библиотеку надо подключать? чтобы использовать функции для объединения C-строк. 6. Можно ли в примере 3 s[i] сравнить с ― ―. 7. В какой библиотеке описан класс string. 8. Какие функции надо использовать, чтобы преобразовать строку в числовой тип. Индивидуальные задания 1 Дана строка. Определить количество слов, равных самому короткому слову в строке. 2 Дана строка. Определить количество слов, равных самому длинному слову в строке. 3 Дана строка. Поменять местами самое длинное и самое короткое слово. 146 4 Дана строка. Сколько слов имеют длину, равную трѐм символам? 5 Дана строка. Удалить слова со второго по четвѐртое. 6 Дана строка. Перевернуть каждое слово в строке. Порядок слов не менять. 7 Дана строка. Определить количество слов в данной строке и заменить все разделители слов (пробелы) на знак ― + ‖. 8 Дана строка. Поменять местами первое и последнее слова. 9 Дана строка. Определить количество слов, длина которых равняется чѐтному числу. 10 Дана строка. Определить количество слов, длина которых равняется нечетному числу. 11 Дана строка. Вывести слова в обратном порядке, начиная с последнего. 12 Дан текст. Сколько в тексте слов начинаются и заканчиваются на одну и ту же букву. 147 Литература 1. Иванова, Г. С. Технология программирования : учебник для вузов [ГрифУМО] / Г. С. Иванова. - 3-е изд., стер. - Москва : КноРус, 2013. - 333 с. 2. Головин, И. Г. Языки и методы программирования : учебник для вузов [Гриф УМО] / И. Г. Головин, И. А. Волкова. - Москва : Академия, 2012. 303 с. 3. Павловская Т. А. С/C++. Программирование на языке высокого уровня [Текст]: учеб. для вузов / Т.А. Павловская. – СПб.: Питер, 2011.– 432 с. 4. Парфилова, Н. И. Программирование. Основы алгоритмизации и программирования : учебник для вузов [Гриф МГТУ им. Н. Э. Баумана] / Н.И. Парфилова, А. Н. Пылькин, Б. Г. Трусов ; под ред. Б. Г. Трусова.. Москва : Академия, 2014. - 239 с. [и предыдущие издания] |