Я выполняю некоторые алгоритмы программирования, но я очень смущен getchar()
этот метод. А вот вопрос требуется:У меня возникли проблемы со словами reverse
- вход: Hello World Здесь I Come
- выход: Давай я здесь World Hello
И я пытаюсь использовать getchar()
, чтобы каждый символ, и использование строковая переменная для сбора символа. Когда приходит пробел, я использую stack
, чтобы вставить текущую строковую переменную в стек, в результате чего строковая переменная равна "". Но что бы я ни пытался, вывод всегда выводит тарабарщину, и я не знаю, как это сделать.
Вот код:
#include<iostream>
#include<stack>
using namespace std;
stack<string> re;// the stack
int main()
{
char a;// the char to get very single char that print
string temp="";
string all="";
while(a=getchar()!='\n')//if enter don't come
{
if(a==(char)'32')//if the space come,push temp and reset the temp equals ""
{
re.push(temp);
temp="";//so that i can collect a new word without last one
}
else
temp+=a;//temp collects the char
}
while(!re.empty())//get every string from the stack
{
if(re.size()==1)
cout<<re.top();
else
cout<<re.top()<<" ";
re.pop();
}
return 0;
}
* ', если (а == (символ) '32')' * Как это компилировать? Это не действительный литерал 'char'. –
так, должен ли я использовать '' вместо этого, но это тоже не работает. Я попытался использовать строковую переменную, чтобы получить все символы, но все же бред. –
Возможно, вы не решите свою проблему, но '(char) '32'' =>' ''' –