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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#define SIZE 500
 
int main ( void )
{
    char charSequence[SIZE] = "";
    signed short counter = 0, secondCounter, currentCharacter, lenghtLastWords = 0;
    signed char stringSize = 0, reverseCounter = 0;
    
    puts( "Enter your sequence" );
 
    while (( currentCharacter = getchar()) != EOF && currentCharacter != '\n' )
        
        charSequence[counter++] = currentCharacter;
        charSequence[counter] = '\0';
        reverseCounter = stringSize = counter;
 
    
    for ( counter = SIZE; counter >= 0; --counter ) {
            
            if (!(charSequence[counter] >= 'a' && charSequence[counter] <= 'z') &&
            !(charSequence[counter] >= 'A' && charSequence[counter] <= 'Z') && 
            lenghtLastWords == 0)
                continue;
            
            if (( charSequence[counter] >= 'a' && charSequence[counter] <= 'z') ||
            ( charSequence[counter] >= 'A' && charSequence[counter] <= 'Z') || 
            charSequence[counter] >= '0' && charSequence[counter] <= '9')
 
                ++lenghtLastWords;
            
            else
                break;
    }
    
    
    for ( secondCounter = 0; secondCounter <= stringSize; ++secondCounter ) {
        
        if ( secondCounter < stringSize - lenghtLastWords )
        printf( "%c", charSequence[secondCounter] );
        
        else
            printf("%c", charSequence[reverseCounter--]);
    }
    puts( "" );
    return 0;
}

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

  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
Похожие ответы