Определить последнее вхождение символа “р” в строке - 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: , , .
  2. Установка размера строки в 1024 символа (или 1 Кб) с помощью #define SIZE.
  3. Объявление переменных: — buf — массив символов, в который будет записываться строка. — p_pos — позиция последнего вхождения символа р в строке. — i — счётчик для цикла.
  4. Вывод сообщения с просьбой ввести строку и считывание её в массив buf с помощью fgets().
  5. Вычисление длины строки с помощью функции strlen().
  6. Цикл while, который будет выполняться до тех пор, пока i больше или равно нулю.
  7. Внутри цикла проверка, является ли текущий символ р. Если да, то запоминаем позицию этого символа в переменной p_pos и выходим из цикла с помощью оператора break.
  8. Если после цикла значение p_pos не равно -1, то выводим сообщение об успешном поиске и выводим найденную подстроку с помощью puts(). В противном случае выводим всю строку без изменений.
  9. Возврат 0, что означает успешное завершение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы