内の文字列[EDITED] iは逆の順序で与えられた文字列を分割する関数を記述し、文字列配列に格納し、何かのようにしたい:スプリット逆順C++
string* splitStr(string s, char c,int& ssize) {
int size = s.size();
string* ss = new string[size];
int count = 0;
ssize = 0;
for (int j = 0; j < size; j++) {
if (s.at(j) == c) {
count++;
}
}
ssize = ++count;
for (int i = 0; i<size; i++) {
if (s.at(i) == c) { ssize--; continue; }
else { ss[ssize] += s.at(i); }
}
ssize = count;
return ss;
}
サンプルプログラム:
string s = "this is some damn";
int size = 0;
string* ss = splitStr(s, ' ', size);
for (int i = 0; i < size; i++) {
cout << ss[i] << "\n";
}
system("PAUSE");
出力:
(this is empty line)
damn
some
is
これは単なる大雑把な試みですが、一般的には非常に信頼性の低いアプローチですね。可能な限り最善の解決策になる可能性があるのは、string、char、int、float以外のデータ型を使用しないこのケースです。
未定義の動作を逆に。ローカルバッファへのポインタを返すことはできません。 – StoryTeller
サンプル入力と希望する出力を提供できますか? –
ブーストスプリットとhttp://en.cppreference.com/w/cpp/container/vector/rbeginをご覧ください – Roby