Программа, выводящая слова строки в обратном порядке на C++
Написал прогу, которая должна выводить слова строки в обратном порядке. Запускается без ошибок, даёт ввести строку, но не выводит ничего.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
int i, k, a=0, dl=0;
string str;
cout << "Enter string:";
dl=str.length();
getline(cin,str);
for(i=dl;i>=0;i--){
a++;
if(str[i]==' '){
for(k=i;k<=(i+a);k++){
cout << str[k];
a=0;
}
}
}
return 0;
}
- "а" считает длину каждого слова и сбрасывается после написания этого слова.
- Я новичок в программировании, если возможно, объясните попроще.
Ответы (1 шт):
Автор решения: hot_penguin
→ Ссылка
Вот рабочий код:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
int i, k, a=0, dl=0;
string str;
cout << "Enter string:";
getline(cin, str);
dl=str.length();
for(i=dl;i>=0;i--){
if(str[i] == ' '){
for(k=i + 1;k<=(i+a);k++){
cout << str[k];
}
a=0;
cout << " ";
}
a++;
}
for (int i = 0; i < dl; i++) {
if (str[i] == ' ') break;
cout << str[i];
}
return 0;
}