Я пытаюсь изменить слова в строке.Последнее слово в строке не реверсирует
Пример, Входной сигнал: , как XSD БФ приведет выход: са DSX FB.
Моя проблема в том, что последнее слово не отменяется.
Пример, Входной сигнал: в XSD БФ приведет выход: са DSX бф .Как вы можете видеть бф не получает обратное.
Мой код,
#include<iostream>
#include<string>
using namespace std;
void RevWords(string inp);
int main()
{
string input;
cout<<"Enter Sring:"<<endl;
getline(cin,input);
cout<<"Entered String:"<<input<<endl;
RevWords(input);
return 0;
}
void RevWords(string inp)
{
int wordEnd=0,indexS=0,indexE=0;
string newStr;
newStr=inp;
while(wordEnd<inp.length())
{
if(inp[wordEnd] != ' ')
{
wordEnd++;
}
else
{
if(inp[wordEnd] == ' ' || inp[wordEnd] == '\0')
{
indexE=wordEnd-1;
while(indexS<wordEnd)
{
newStr[indexS]=inp[indexE];
indexS++;
indexE--;
}
newStr[indexS]=' ';
indexS++;
}
wordEnd++;
}
}
cout<<newStr<<endl;
}
T ry отлаживая код, это лучший способ понять, что происходит. – Motti
Вы забыли задать вопрос. Ваш вопрос: «Как вы отлаживаете код на C++?» Если да, то зачем давать нам весь этот код и не сообщать нам, какой у вас отладчик? –
Используйте 'std :: reverse' для каждого элемента вектора слов, почему все это? – LogicStuff