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;
}
#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;
}
相关文章推荐
- c++输入字符串的多种方法总结
- C++中访问字符串的三种方法总结
- C++字符串常用方法总结
- C++字符串常用方法总结
- C++字符串常用方法总结
- 基于C++的录入带空格字符串方法总结
- C++字符串常用方法总结
- C++字符串常用方法总结
- C++字符串常用方法总结
- java,c++判断字符串是否为空的方法总结
- 关于 字符串中的单引号, 在sql存储过程中的传输总结; 逗号分隔的多个变量提取方法.
- c/c++字符串分割方法总结2
- C++数值--字符串间转换方法总结
- JS字符串常用方法总结
- C++常用字符串分割方法实例汇总
- C#将字符串转换为整型的三种方法的总结
- C++常用字符串分割方法
- visual c++.net中的字符串转换方法
- C#操作字符串方法总结<转>
- C/C++中输入带空格的字符串用法总结