P_zz 2018-10-11 08:45 采纳率: 54.5%
浏览 639
已采纳

C++字符拆分和 反转。。。。

将IP"1.1.168.192"
变换成 IP"192.168.1.1"
只改""内的
返回string类型

  • 写回答

1条回答 默认 最新

  • threenewbee 2018-10-11 10:50
    关注
     #include <vector>
    #include <string>
    #include <iostream>
    
    using namespace std;
    
    vector<string> split(const string &s, const string &seperator){
      vector<string> result;
      typedef string::size_type string_size;
      string_size i = 0;
    
      while(i != s.size()){
        //找到字符串中首个不等于分隔符的字母;
        int flag = 0;
        while(i != s.size() && flag == 0){
          flag = 1;
          for(string_size x = 0; x < seperator.size(); ++x)
            if(s[i] == seperator[x]){
              ++i;
              flag = 0;
              break;
            }
        }
    
        //找到又一个分隔符,将两个分隔符之间的字符串取出;
        flag = 0;
        string_size j = i;
        while(j != s.size() && flag == 0){
          for(string_size x = 0; x < seperator.size(); ++x)
            if(s[j] == seperator[x]){
              flag = 1;
              break;
            }
          if(flag == 0) 
            ++j;
        }
        if(i != j){
          result.push_back(s.substr(i, j-i));
          i = j;
        }
      }
      return result;
    }
    
    int main() {
      string s = "1.1.168.192";
      vector<string> v = split(s, ".");
      string result = v[v.size() - 1];
      for(vector<string>::size_type i = v.size() - 2; i >= 0; i--)
      {
        result = result + ".";
        result = result + v[i];
      }
      cout << result;
    }
    

    192.168.1.1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能