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

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

c++

1个回答

 #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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!