rtrim()
アルゴリズムを使用せずに、C++ の文字列ヘッダーから関数を使用して文字列をトリミングしようとしています。
私がしたことは、スペースが存在する場合は開始位置と終了位置を調べることでした。使用して削除するだけですisspace()
が、コンパイルすると、次のエラーが発生します。
タイプ 'const char*' の右辺値からのタイプ 'std::string& {aka std::basic_string&}' の非 const 参照の無効な初期化</p>
ここに私のコードがあります:
#include <iostream>
#include <string>
using namespace std;
string rtrim(string& s) {
size_t i;
for(i = s.length() - 1; i != (size_t)-1; i--) {
if(!(isspace(s[i]))){
break;
}
}
return s.substr(0, i + 1);
}
int main(){
cout << "|" << rtrim(" hello world\t ") << "|" << endl;
}
などのパラメーターを設定しstring s = ( "hello world\t ");
て実行すると、動作cout << rtrim(s) << endl;
しているように見えますが、上記のコードのようには動作しません。助言がありますか?