Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // !!! Необходимо внести правило "_CRT_SECURE_NO_WARNINGS" в "Определения препроцессора" в настройках проекта
- // ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
- #include <stdafx.h>
- #include <stdio.h>
- #include <string.h>
- /*
- * 30 слов по 8 символов
- * разделитель " ", конец "."\
- * Заменить "ing" на "ed"
- */
- int main(void) {
- /*
- * Инициализация программы
- */
- char A[31][9]; // Массив со словами. В конце каждого слова ' '. Конец '.'
- int world = 0, // Порядок слова в массиве
- symbol = 0; // Порядок символа в массиве
- /*
- * Ввод всех слов
- */
- char nowChar;
- nowChar = getchar();
- // Пока текущий символ не .(конец слов), повышаем номер вводимого слова на 1
- for (world = 0; nowChar != '.'; A[world][symbol] = '\0', world++){
- // Если текущий символ - пробел, получаем новый символ
- if (nowChar == ' ') nowChar = getchar();
- // Пока не найдем точку или пробел - заносим слово в массив
- for (symbol = 0; nowChar != '.' && nowChar != ' '; symbol++) {
- A[world][symbol] = nowChar;
- nowChar = getchar();
- }
- }
- // Ограничитель. Обозначает конец всех слов.
- A[world][0] = '\0';
- /*
- * Перебор всех слов и изменение ing на ed
- */
- char *pos = A[0]; // Указатель на позицию вхождения
- for (world = 0; A[world][0] != '0' ; world++) {
- pos = A[world];
- // Начинаем искать с прошлого вхождения или с нового слова
- while ((pos = strstr(pos, "ing")) != NULL) {
- *pos = 'e';
- *(pos + 1) = 'd';
- // Копируем оставшуюся строку на символ назад
- strcpy((pos + 2), (pos + 3));
- }
- }
- // Вывод получившийся последовательности
- for (world = 0; A[world][0] != '\0'; world++) {
- printf("%s ", A[world]);
- }
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment