Перевернуть слово в предложении - C (СИ)

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

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

Помогите пожалуйста. Нужно перевернуть слово в предложении последние. Например "За окном хорошая погода", чтобы погода была "адогоп".

Решение задачи: «Перевернуть слово в предложении»

textual
Листинг программы
  1. #include <stdio.h>
  2. #define SIZE 500
  3.  
  4. int main ( void )
  5. {
  6.     char charSequence[SIZE] = "";
  7.     signed short counter = 0, secondCounter, currentCharacter, lenghtLastWords = 0;
  8.     signed char stringSize = 0, reverseCounter = 0;
  9.    
  10.     puts( "Enter your sequence" );
  11.  
  12.     while (( currentCharacter = getchar()) != EOF && currentCharacter != '\n' )
  13.        
  14.         charSequence[counter++] = currentCharacter;
  15.         charSequence[counter] = '\0';
  16.         reverseCounter = stringSize = counter;
  17.  
  18.    
  19.     for ( counter = SIZE; counter >= 0; --counter ) {
  20.            
  21.             if (!(charSequence[counter] >= 'a' && charSequence[counter] <= 'z') &&
  22.             !(charSequence[counter] >= 'A' && charSequence[counter] <= 'Z') &&
  23.             lenghtLastWords == 0)
  24.                 continue;
  25.            
  26.             if (( charSequence[counter] >= 'a' && charSequence[counter] <= 'z') ||
  27.             ( charSequence[counter] >= 'A' && charSequence[counter] <= 'Z') ||
  28.             charSequence[counter] >= '0' && charSequence[counter] <= '9')
  29.  
  30.                 ++lenghtLastWords;
  31.            
  32.             else
  33.                 break;
  34.     }
  35.    
  36.    
  37.     for ( secondCounter = 0; secondCounter <= stringSize; ++secondCounter ) {
  38.        
  39.         if ( secondCounter < stringSize - lenghtLastWords )
  40.         printf( "%c", charSequence[secondCounter] );
  41.        
  42.         else
  43.             printf("%c", charSequence[reverseCounter--]);
  44.     }
  45.     puts( "" );
  46.     return 0;
  47. }

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

  1. В начале программы подключается стандартная библиотека для работы с файлами и вывода данных на экран.
  2. Объявляются основные переменные:
    • charSequence - массив символов, в который будут добавляться символы из ввода пользователя;
    • counter - счётчик для прохода по массиву;
    • secondCounter - счётчик для прохода по массиву во втором цикле;
    • currentCharacter - текущий вводимый символ;
    • lenghtLastWords - длина последней слова в строке, которое нужно перевернуть;
    • stringSize - размер строки, включая последний нулевой символ;
    • reverseCounter - счётчик для прохода по массиву в обратном порядке.
  3. Выводится приглашение для ввода строки.
  4. В цикле while считываются символы из ввода пользователя и добавляются в массив charSequence. При этом счётчик counter увеличивается на 1, а reverseCounter и stringSize равны текущему значению counter.
  5. После ввода всей строки, во втором цикле for происходит определение последнего слова, которое нужно перевернуть. Если текущий символ не является буквой, то он пропускается, а счётчик reverseCounter уменьшается на 1.
  6. В третьем цикле for происходит вывод перевёрнутого слова на экран. Если текущий индекс secondCounter меньше stringSize - lenghtLastWords, то выводится символ из массива charSequence, иначе выводится символ из массива charSequence с уменьшенным reverseCounter.
  7. В конце программы выводится пустая строка и возвращается 0, что означает успешное завершение работы программы.

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


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

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

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы