您的位置:首页 > 编程语言 > C语言/C++

C++字符串分隔方法总结

2011-11-25 15:57 204 查看
一. 使用stringstream和getline结合方式

#ifndef STRING_SPLIT_H

#define STRING_SPLIT_H

#include <iostream>

#include <vector>

#include <sstream>

//引入命名空间

using namespace std;

//定义成员

vector<string> split(const char *src,const char delimit);

#endif

#include "csplit.h" //csplit.h是上面定义的头文件

vector<string> split(const char *src,const char delimit);

{

stringstream ss(src);

string sub_str;

vector<string> vec;

while(getline(ss,sub_str,'|'))

{

cout << sub_str << endl;

vec.push_back(sub_str);

}

return vec;

}

二、使用c语言中的strtok()方法

#include <iostream>

#include <cstring>

#include <vector>

using namespace std;

int main()

{

vector<string> vec;

string str("a|b|c d");

//因为是运行时确定大小,所以必须从堆分配内存,然后用指针指向它

char *buf = new char[str.length()+1];

//strcpy方法需要的是二个字符串指针,而不是string类型,所以c_str方法就能完成从字符串向字符指针的转换

strcpy(buf,str.c_str());

buf[str.length()] = '\0';

char *tmp;

tmp = strtok(buf,"| ");

while(tmp != NULL)

{

vec.push_back(tmp);

tmp = strtok(NULL,"| ");

}

cout << vec.size() << endl;

delete []buf;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: