Применение библиотечных функций для работы c символами и символьными рядками - C (СИ)
Формулировка задачи:
В символьной строке вывести предпоследнее слово.
Предложение: Мама мыла раму
Предпоследнее слово: мыла
Решение задачи: «Применение библиотечных функций для работы c символами и символьными рядками»
textual
Листинг программы
#include <stdio.h> #include <string.h> #define DELIM " \t\n" int main(void) { char buf[BUFSIZ], * pFirst, * pSecond, * pCurrent; while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) { if ( ! ( pFirst = strtok(buf, DELIM) ) ) { fprintf(stderr, "String is empty!\n"); continue; } if ( ! ( pSecond = strtok(NULL, DELIM) ) ) { fprintf(stderr, "Only one word in string!\n"); continue; } while ( pCurrent = strtok(NULL, DELIM) ) { pFirst = pSecond; pSecond = pCurrent; } printf("Second word to last: %s\n", pFirst); } return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с символами и символьными рядками
- Определяем разделитель в виде строки
\t\n
- Объявляем переменную buf как массив символов (буфер) с фиксированным размером BUFSIZ
- Объявляем указатель pFirst, pSecond и pCurrent на первый, второй и последующие слова в строке соответственно
- Входим в цикл while, который будет выполняться до тех пор, пока пользователь не введет пустую строку
- Проверяем, что строка не пустая. Если это так, то переходим к следующему шагу, иначе выводим сообщение об ошибке и переходим к следующей итерации цикла
- Используя функцию strtok, разделяем входную строку на слова и сохраняем первое слово в переменной pFirst
- Проверяем, что второе слово не пустое. Если это так, то переходим к следующему шагу, иначе выводим сообщение об ошибке и переходим к следующей итерации цикла
- Используя цикл while, разделяем оставшиеся слова в строке и сохраняем их в переменной pCurrent
- Обновляем значения pFirst и pSecond, чтобы они указывали на предыдущее и текущее слова соответственно
- Повторяем шаг 9 до тех пор, пока не будут использованы все слова в строке
- Выводим второе последнее слово на экран
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д