stl 中有没有现成的函数,将以逗号分割的字符串,转化为字符串数组
stl 中有没有现成的函数,将以逗号分割的字符串,转化为字符串数组 问题点数:20、回复次数:15Top
1 楼liangshoulong(咖啡需要学习)回复于 2003-01-07 17:47:34 得分 0
真是懒惰!就不能自己写嘛!嘿嘿Top
2 楼metellica(金属)回复于 2003-01-07 18:00:31 得分 0
c#和java好像可以Top
3 楼bigwhiteshark(变性鲨鱼)回复于 2003-01-08 19:04:32 得分 0
STL 是模板库
还有一个C++标准库
只要你
#include<CString>Top
4 楼widewave(冯雨(历史事实))回复于 2003-01-08 19:36:45 得分 0
好象有,你找找。Top
5 楼Solstice(大佛)回复于 2003-01-08 23:55:44 得分 0
http://cm.bell-labs.com/cm/cs/tpop/csvgetlinec++.cTop
6 楼fixopen(dup)回复于 2003-01-09 07:55:19 得分 5
boost库里有一个tokenization什么的,专干这种事!!Top
7 楼Alain_Delone(阿龙)回复于 2003-01-09 16:26:44 得分 0
晕,好像没现成的,不过用以有的库函数实现很容易啊,甚至用C++流的特点逐个读取INT 和CHAR也可以啊Top
8 楼HaoGeGe(交流的方向)回复于 2003-01-10 16:27:08 得分 0
http://www.boost.org/libs/tokenizer/index.htmTop
9 楼molti(八极狂侍)回复于 2003-02-20 23:17:30 得分 0
string str1="fasas,fsadfs",
str2="fdas,fasaf,fsd",
str3="fsa,fas,fas";
string myStr=str1+str2+str3;
std::replace(myStr.begin(),myStr.end(),',','');
Top
10 楼child_bj(今天能看见山)回复于 2003-02-20 23:48:40 得分 0
C++的string类有find函数,能找到某一个字符的位置。当然能指定开始寻找的位置了。
然后用string的substring函数截取字符串,就OK了。Top
11 楼ylangin(Forest)回复于 2003-02-21 13:08:34 得分 10
刚好自己写了一个
使用
vector<string> tArray;
char string1[];
get_sub(string1, ";", tArray);
程序:
int get_sub(const char* lpszString, char* szSeps, vector<string>& tArray)
{
if ( ! lpszString || ! szSeps )
return -1;
if ( strlen(lpszString) > LINE_MAX_LEN)
return -2;
char* pTok(0);
char sz[LINE_MAX_LEN]={0};
strcpy(sz, lpszString); // 要改变串的值,所以重新拷贝
pTok = strtok(sz, szSeps);
while ( pTok )
{
tArray.push_back(pTok);
pTok = strtok(NULL, szSeps);
}
return 0;
}Top
12 楼green2(绿叶)回复于 2003-03-03 17:50:09 得分 0
strtok函数不是STL的非windows平台中能使用吗?谢谢!Top
13 楼shornmao(毛豆子[死猫])回复于 2003-03-04 12:14:54 得分 0
用getline可以指定逗号作为虚拟的行结束符,已得到都好分隔的字符串序列。Top
14 楼jfwan(大家进步)回复于 2003-03-04 16:16:30 得分 5
#include <iostream>
#include "boost/tokenizer.hpp"
#include "boost/token_functions.hpp"
int main()
{
using namespace std;
typedef boost::tokenizer< boost::char_separator<char> > btokenizer;
const string s = "abc,defg,12,3";
boost::char_separator<char> sep(",");
btokenizer tok(s, sep);
for (btokenizer::iterator i = tok.begin(); i != tok.end(); ++i)
cout << *i << endl;
}
Top
15 楼allen1981813(Nahe des Geliebten)回复于 2003-03-04 16:31:04 得分 0
strtokenTop




