Определить последнее вхождение символа “р” в строке - C (СИ)
Формулировка задачи:
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке. Если такого символа нет, то вывести всю строку, исключив из нее последнее слово.
помогите пожалуйста! буду благодарен,спасибо скажу!
желательно по понятнее и по простому.
Решение задачи: «Определить последнее вхождение символа “р” в строке»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 1024 int main(void) { char buf[SIZE]; int p_pos = -1; int i = 0; puts("Enter string:"); fgets(buf, SIZE, stdin); i = strlen(buf); while (i) if (buf[--i] == 'p') { p_pos = i; break; } if (p_pos != -1) { buf[p_pos + 1] = '\0'; puts(buf); } else puts(buf); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
, , . - Установка размера строки в 1024 символа (или 1 Кб) с помощью #define SIZE.
- Объявление переменных:
— buf — массив символов, в который будет записываться строка.
— p_pos — позиция последнего вхождения символа
р
в строке. — i — счётчик для цикла. - Вывод сообщения с просьбой ввести строку и считывание её в массив buf с помощью fgets().
- Вычисление длины строки с помощью функции strlen().
- Цикл while, который будет выполняться до тех пор, пока i больше или равно нулю.
- Внутри цикла проверка, является ли текущий символ
р
. Если да, то запоминаем позицию этого символа в переменной p_pos и выходим из цикла с помощью оператора break. - Если после цикла значение p_pos не равно -1, то выводим сообщение об успешном поиске и выводим найденную подстроку с помощью puts(). В противном случае выводим всю строку без изменений.
- Возврат 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д