Содержание
Постановка задания
Во входной строке все интервалы между словами заменить ровно на 2 пробела.
Дополнения и ограничения:
- под словом понимается неразрывное сочетание латинских букв (a..z, A..Z);
- входная строка должна начинаться со слова;
- входная строка должна заканчиваться словом;
- для окончания ввода нажмите клавишу ENTER.
Реализация задачи на языке Си
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | #include <stdio.h> // консольный ввод-вывод #include <conio.h> // для задержки программы #include <locale.h> // руссификация диалогов // блок объявления констант #define PRESS_ENTER '\n' #define END_STRING '\0' #define SPACE ' ' #define MAX_LEN_STR 200 //---------------------------------------------------------------------- // функция, проверяющая текущую букву входной строки на алфавитность // 1 - {a-z, A-Z}, иначе 0 //---------------------------------------------------------------------- int isalpha_user(const char pch) { if((pch >= 'a' && pch <= 'z') || (pch >= 'A' && pch <= 'Z')) return 1; else return 0; } //---------------------------------------------------------------------- // главная функция программы (точка входа) //---------------------------------------------------------------------- int main(void) { char prevChar, currChar; // предыдущий и текущий символ строки char outputString[MAX_LEN_STR]; // хранит входную/выходную строку int indexInsertChar; // индекс обрабатываемого символа // русификация всех диалогов в консоли setlocale(LC_ALL, "rus"); // выводим на экран условие задачи printf("Во входной строке все интервалы между словами заменить ровно на 2 пробела.\n"); printf("Дополнения и ограничения:\n"); printf("\t1. Под словом понимается неразрывное сочетание латинских букв (a..z, A..Z)\n"); printf("\t2. Входная строка должна начинаться со слова\n"); printf("\t3. Входная строка должна заканчиваться словом\n"); printf("\t4. Для окончания ввода нажмите клавишу ENTER\n\n"); indexInsertChar = -1; printf("Введите входную строку для обработки: "); prevChar = getchar(); outputString[++indexInsertChar] = prevChar; // вся обработка производится в бесконечном цикле do { currChar = getchar(); if(currChar == PRESS_ENTER) { outputString[++indexInsertChar] = END_STRING; break; } // 1 случай: буква-буква if((isalpha_user(prevChar) == 1) && (isalpha_user(currChar) == 1)) outputString[++indexInsertChar] = currChar; // 2 случай: буква-символ if((isalpha_user(prevChar) == 1) && (isalpha_user(currChar) == 0)) { outputString[++indexInsertChar] = SPACE; outputString[++indexInsertChar] = SPACE; } // 3 случай: символ-буква if((isalpha_user(prevChar) == 0) && (isalpha_user(currChar) == 1)) outputString[++indexInsertChar] = currChar; prevChar = currChar; } while(1 == 1); // выводим результаты на экран printf("\nВходная строка после обработки: %s.\n", outputString); printf("Для завершения работы программы нажмите клавишу ENTER..."); getch(); // задержка работы программы, чтобы пользователь мог просмотреть результаты return 0; } |
Результаты работы программы
Заказать у нас работу по программированию
Очень часто нам на почту поступают письма от студентов, которым требуется реализовать похожее задание. То есть студент на сайте нашел пример лабораторной работы, которая почти на $100\%$ соответствует той, которую ему надо выполнить.
➡ Сразу хотим сказать, что бесплатно мы ничего не реализуем. Поэтому, если вам необходимо помочь в кодировании похожей работы, то пишите на наш электронный адрес proglabs@mail.ru.
💡 Хорошая новость для вас в том, что это задание является тривиальным и мы готовы предоставить качественное решение за небольшие деньги. Цена обговаривается в индивидуальном порядке. Ориентировочная стоимость задачи, показанной в этом примере, составляет $75 — 100$ рублей.
Добавить комментарий