#include <iostream>
#include <cstring>
using namespace std;
void reverse(char* sentence)
{
int index = strlen(sentence) - 1;
char last = '\0';
int hold = 0;
while (index != 0){
while (sentence[index] != ' ')
index--;
hold = index; //keeps the index of whitespace
while (sentence[index] != last){
cout << sentence[index]; //printing till it either hits end character or whitespace.
index++;
}
last = sentence[hold]; //Keeps the whitespace
index = hold; //
}
}
int main()
{
char* sentence = new char[256];
cin.getline(sentence, 256);
reverse(sentence);
}
Chcę odwrócić kolejność słów w zdaniu i możesz zobaczyć moją próbę powyżej.Kolejność odwrotna słów w zdaniu
intput próbki i wyjście powinno być tak:
Howdy Mr. Mcfly?
Mcfly? Mr. Howdy
gdzie mogę dostać:
Howdy Mr. Mcfly?
Mcfly?
Istnieje wiele podobnych pytań całym internecie, ale to, co chcę jest, aby znaleźć błąd w moim własnym kod.
Jeśli używasz C++, dlaczego używasz char *? Byłoby to znacznie łatwiejsze w przypadku ciągów. Zauważyłem, że oznaczono Cię tagiem "dynamiczne tablice", czy istnieje jakiś szczególny powód, dla którego używasz char *, które spowodowałoby, że odpowiedź, która byłaby niedopuszczalna za pomocą ciągów? – ChrisCM
co widzisz po uruchomieniu przykładu za pomocą debuggera? – TooTone
Teraz byłby dobry moment, aby rozpocząć naukę korzystania z debuggera. Przechodząc przez kod i sprawdzając zmienne, powinieneś być w stanie szybko znaleźć błędy. –