前提・実現したいこと
標準入力で名前を入れて、姓と名を入れ替えたいです。
区切りはスペース部分で行います。
例)
標準入力Yamada Taro
標準出力Taro Yamada
発生している問題・エラーメッセージ
最終的に出力しているvectorの中身が空になってしまい、何も出力されません。 getline関数の区切り文字の部分を変更すると、その文字で区切ることはできているので、そこが原因だと考えています。 アドバイスお願いいたします。
該当のソースコード
C++
1#include <iostream> 2#include <string> 3#include <vector> 4#include <sstream> 5 6std::vector<std::string> split(std::string name) 7{ 8std::vector<std::string> v; 9 std::stringstream ss{ name }; 10 std::string buf; 11 while (std::getline(ss, buf, ' ')) 12 { 13 v.push_back(buf); 14 } 15 return v; 16} 17 18 19int main() 20{ 21 std::string name; 22 23 std::cin >> name; 24 25 std::vector<std::string> v = split(name); 26 27 std::cout << v[1] << " " << v[0] << std::endl; 28 29} 30
補足情報(FW/ツールのバージョンなど)
コンパイラ
gcc 9.2.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/09 10:12