Преобразовать текст, поменяв местами максимальное и минимальное предложения - C (СИ) (73133)

Узнай цену своей работы

Формулировка задачи:

Всех с наступившим!!! Вообщем задание : дан текст Преобразовать его поменяв местами максимальное и минимальное предложения. Предложения начинаються и заканчиваються на одной строке. Нашел схожу тему, но ответ там дан не был, вообщем требуеться помощь. Вот смог только реализовать нахождение длинны предложений
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <string.h>
 
int main()
{
    setlocale(0, "");
    char str[] = "Hello.My name is George!I`m living in Germany.What would u like to ask?";
 
    printf(str);
    printf("\n\n");
    
    char a[] = ".!?";
    char *p = strtok(str, a);

    for (int i=1;p!=NULL;i++) 
    {
        strlen(p);
        printf("Длинна %d предложения %d\n",i,strlen(p));
        p = strtok (NULL, a);
    }
    
    _getch();
    return 0;
}
Не могу сообразить как поменять местами предложения.

Решение задачи: «Преобразовать текст, поменяв местами максимальное и минимальное предложения»

textual
Листинг программы
char s[20][50];
char *p = strtok(str, a);
for (int i=1;p!=NULL && i<20;i++) 
{
    strcpy(s[i-1],p);
    p = strtok (NULL, a);
 }

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

  1. В начале кода объявляется массив s размером 20 на 50 символов, предназначенный для хранения предложений.
  2. Затем в переменную p записывается результат работы функции strtok, которая ищет в строке str подстроки, разделенные символом a. Функция возвращает указатель на первую найденную подстроку, в данном случае на первое слово в строке.
  3. Далее начинается цикл, который будет выполняться до тех пор, пока p не станет равным NULL (что означает, что все подстроки были обработаны) и пока индекс i меньше 20 (что означает, что в массиве s еще есть свободные ячейки).
  4. Внутри цикла значение p копируется в массив s с индексом i-1 (чтобы учесть нумерацию с 1).
  5. Затем p обновляется, и цикл продолжается.
  6. В конце цикла в s будут храниться предложения в обратном порядке.

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


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

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

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