c/c++ 字符串分割
vector<string> split_string(const char *str, const char *pattern)
{
char * strc =(char*)str;
vector<string> res;
char* temp = strtok(strc, pattern);
while(temp != NULL)
{
res.push_back(string(temp));
temp = strtok(NULL, pattern);
}
return res;
}
vector<string> split_string(const string &str, const string &pattern)
{
char * strc = new char[strlen(str.c_str())+1];
strcpy(strc, str.c_str()); //string转换成C-string
vector<string> res;
char* temp = strtok(strc, pattern.c_str());
while(temp != NULL)
{
res.push_back(string(temp));
temp = strtok(NULL, pattern.c_str());
}
delete[] strc;
return res;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <fstream>
#include <string>
#include<vector>
using namespace std;
vector<string> split_string(const string &str, const string &pattern)
{
char * strc = new char[strlen(str.c_str())+1];
strcpy(strc, str.c_str()); //string转换成C-string
vector<string> res;
char* temp = strtok(strc, pattern.c_str());
while(temp != NULL)
{
res.push_back(string(temp));
temp = strtok(NULL, pattern.c_str());
}
delete[] strc;
return res;
}
int main(int argc, char *argv[])
{
vector<string> res;
res = split_string("115223 rtmp://192.168.0.112/live/livestream"," ");
cout<<res[0]<<" "<<res[1]<<endl;
return 0;
}
shuchu:
115223 rtmp://192.168.0.112/live/livestream