Почему добавляются пробелы в конец строки
Задание такое: в данной строке у всех слов, взять первую букву и переместить её в конец этого слова и добавить к этой букве -"ay".
Если ввести-"This is my string". То должно получиться-"hisTay siay ymay tringsay".
Но у меня, если в конце добавить один из этих знаков - "?", "!", ". ",", то в конце строки добавляются пробелы, вот так получается- "hisTay siay ymay tringsay ? "
Вот мой код:
#include<string>
#include<sstream>
std::string pig_it(std::string str)
{
std::stringstream ss(str);
std::string temp[255];
std::string out;
int count=0;
std::string word;
while(ss>>word)
{
if(word=="!"||word=="?"||word==","||word==".") temp[count]=word;
else temp[count]=word.substr(1, word.size())+word[0]+"ay";
count++;
}
int c=0;
for(int i=0; i<str.size();++i)
{
if(str[i]!=' ')
{
out+=temp[c];
i+=temp[c].size()-3;
c++;
}else {out+=" ";}
}
return out;
}```
Не могу понять как убрать пробелы или не добавлять их вот в этом куске:
`if(word=="!"||word=="?"||word==","||word==".") temp[count]=word;`
Пробывал `word[0]` всё равно пробелы есть.
Подскажите пожалуйста?
Ответы (1 шт):
Автор решения: Linxusr
→ Ссылка
НАшёл сам.
Вот здесь
else {out+=" ";}
надо поставить проверку на конец слов в массиве:
else if(c<count){out+=" ";}