小编May*_*kar的帖子

如何从c ++“ XY:56:21AM”中的此字符串中分离HH,MM,SS和merdian?以下程序出现分段错误

输入字符串“ XY:56:21AM”。我正在尝试将此字符串转换为HH,MM,SS和子午线。我尝试了substr,但没有得到想要的输出。下面的代码获取分段错误。

string Conversion(string str) {

    str.erase(std::remove(str.begin(), str.end(), ':'), str.end());

    string tmp = "";
    std::vector<string> data;

   for (int i = 0; i < str.length(); ++i)
   {
      if(i < 2){
        tmp.push_back(str[i]);
      }
      if(i < 4 && i > 1){
          if(i == 2){
            tmp.push_back('\0');
            data.push_back(tmp);
            tmp = "";
          }
          tmp.push_back(str[i]);
      }
   }
   tmp.push_back('\0');
            data.push_back(tmp);
            tmp = "";
   for(auto i=data.begin(); i != data.end(); i++)
        cout << *i << endl;
}
Run Code Online (Sandbox Code Playgroud)

c++ c++11 c++14 c++17

0
推荐指数
1
解决办法
44
查看次数

标签 统计

c++ ×1

c++11 ×1

c++14 ×1

c++17 ×1