Задача №2. Условие задачи Преобразовать строку, заменив в ней группу, из стоящих рядом точек одной точкой. Количество пробелов между словами не должно превышать одного. Описание метода решения задачи 1. Выявляем исходные данные, результаты, назначаем им имена. Исходные данные: исходная строка char *stroka- объявляется как указатель и для нее резервируется место в памяти 30 байт - stroka= new char [30]; Результаты: преобразованная строка по условию задачи 2. Выбираем метод решения задачи, разбиваем на этапы (с учетом возможностей ЭВМ) Первоначально составим укрупненную схему, а затем подробную для блока III. Укрупненная схема I. Подключение всех необходимых заголовочных файлов II. Локальное описание переменных char *stroka1 III. Получение необходимого результата и вывод его на экран III. 1. МРЗ: * вводим строку (gets(str1), предварительно очистив поток ввода fflush(stdin). Функция считывает строку из stdin и записывает адрес в указатель stroka, добавляя символ '\0'(признак конца строки) * в цикле "перебора элементов строки" - while(*stroka != '\0'): если не конец строки, - выполняем проверку на неравенство символу '.'(if(*stroke != '.')): если Да, то: выводим этот символ на экран если Нет, то: выводим одну точку на экран, в цикле "перебора элементов строки" - while(*stroka = = '.'), пока символ равен точке, увеличиваем адрес в переменной strokа на одну ячейку (stroka++), Выводим текущий символ на экран, т. к. после предыдущего цикла while(*stroka = = '.') указатель stroke остановился на первом, не равном точке, символе после группы встреченных точек. - в теле цикла увеличиваем адрес переменной str1 на одну ячейку (str1++), иначе из цикла не выйдем * вывод результата выполняем одновременно с выполнением условия задачи в предыдущем пункте P.S. Вывод на экран легко можно заменить выводом в другую строку, если есть необходимость использовать результат для решения другой задачи. Программа, реализующая данный алгоритм #include<conio.h> #include<iostream.h> #include<iomanip.h> #include<math.h> #include<string.h> #include<stdio.h> #include<stdlib.h> #include<ctype.h> void main() { char *stroka; stroka= new char [30]; int i; cout<<"Vvedi strocy:"; fflush(stdin); gets(stroka); while(*stroka!='\0') { if(*stroka!='.') cout<<*stroka; else { cout<<*stroka; while(*stroka=='.')stroka++; cout<<*stroka; } stroka++; } getch(); }
1/--страниц