Нужно перевернуть строку c++

113
24 октября 2019, 05:10

С клавиатуры вводится строка символов, представляющая собой предложение со знаками препинания (точка, запятая, восклицательный знак). Вывести на экран предложение, получающееся из исходного изменением порядка букв на обратный в каждом слове с сохранением знаков препинания. Вот код:

void reverse(char s[], int i, int j)  //переворот слова
{
    if (s[i] == '.' || s[i] == ',' || s[i] == '!' || s[i] == ' ')
    {
        for (int j = 0; j < i; j++)
        {
            i--;
            if (s[j] == s[i])
                break;
            if (j >= i)
                break;
            swap(s[j], s[i]);
        }
    }
}
int searchBegWord(char s[], int lenght, int pos)  //поиск начала слова
{
    for (int i = pos; i < lenght; i++)
    {
        if (s[i] != '.' && s[i] != ',' && s[i] != '!' && s[i] != ' ')
        {
            int beg = i;
            return beg;
        }
    }
}
void reverseWord(char s[], int lenght, int i, int beg)  //переворот предлож.
{
    for (int i = 0; i < lenght; i++)
    {
        if (s[i] == '.' || s[i] == ',' || s[i] == '!' || s[i] == ' ')
        {
            reverseWord(s, lenght, searchBegWord(s,lenght,0) , i );
        }
    }
}

Нельзя использовать классы. У меня почему-то переворачивает только первое слово и всё. Не получается перевернуть предложение. В чем ошибка? Заранее спасибо!

READ ALSO
Преобразовать YCbCr в YCbCr jpeg?

Преобразовать YCbCr в YCbCr jpeg?

Я не могу понять пару вещей, и одно исходит из другого

118
Как залогиниться на сайт?

Как залогиниться на сайт?

Необходимо зайти на сайт oddsportalcom, чтобы в дальнейшем парсить его с помощью jsoup

128
Включить механизм шифрования в jvm [закрыт]

Включить механизм шифрования в jvm [закрыт]

Как включить механизм шифрования памяти в jvm? Для предотвращения Dll инъекций и замены переменных используя CheatEngine (как в denuvo)

140