単語順に文字列を逆にしたいと考えています。文字列が "Cat is running"の場合と同様に、 "running is Cat"である必要があります。これは、ポインタと配列の若干の誤差を示す再帰によって文字列内の単語の順序を逆にする方法
#include<iostream>
#include<string>
using namespace std;
void reverseString(string str);
int length, lastLength;
int main() {
string s;
cout << "Enter a string to reverse its words: ";
getline(cin, s);
lastLength = s.length() - 1;
length = lastLength;
cout << "\nThe string in reverse order is ";
cout << endl;
}
void reverseString(string str) {
if (length < 0)
return;
else {
if (str.at[length] == " " || length == 0)
{
if (length == 0)
length = -1;
for (int i = length + 1; i < lastLength; i++)
cout << str.at[length];
lastLength = length - 1;
}
length--;
reverseString(str);
}
}
: ここコードです。私はこれを解決する方法を知らない。 本当にありがとうございます! :)
それはコンパイルエラーまたは実行時エラーまたは間違った出力であるが、どうか明らかにしてください!! mainで呼び出された 'reverseString'を見ることはできません。 – piyushj
再帰でグローバル変数を使わないでください。コードを読み込み/解析するのがかなり難しくなります。 –
ループ不変式とその本体が正しくありません。あなたがそれで達成したいものを再検討してください。 –