首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在c++中拆分字符串

在c++中拆分字符串
EN

Stack Overflow用户
提问于 2011-05-09 20:06:05
回答 3查看 193关注 0票数 0

我有一个函数MakeElementfromString( string k ){},我想拆分字符串,并用它生成struct element{int nr, string s}。我能用什么来做到这一点呢?找到了strtok,但无法使用它,或者我不知道如何使用它,因为它是针对char和一些stringstream方法的。对我来说没什么用谁能告诉我一个主意吗?我不是c++专家,所以请解释一下:)谢谢

EN

回答 3

Stack Overflow用户

发布于 2011-05-09 20:10:49

如果可以使用libs,请使用boost::split。

如果你不能迭代你的字符串并把部分放在一个向量中。

代码语言:javascript
运行
复制
string s("test hallo! someothertest");
char separator = ' ';
vector<string> parts;
int token_begin = 0;
for(int i = 0; i < s.size(); ++i){
  if( s[i] == separator){
     parts.push_back(s.substr(token_begin, i - token_begin ));
     token_begin = i + 1;
  }
}

//get last token if does not end with a separator
if(token_begin != s.size()){
  parts.push_back(s.substr(token_begin, s.size() - token_begin));
}
票数 1
EN

Stack Overflow用户

发布于 2011-05-09 20:14:13

在写这篇文章的时候,这个问题还没有被编辑成OP希望如何将字符串转换为struct元素。但这是如何实现这一目标的大致轮廓。

假设:字符串s的前两个字符放入struct的int成员中,其余的放入字符串部分。

示例:S= 01hello

伪代码:

代码语言:javascript
运行
复制
string num = s.substr(0, 2);  
string rest = s.substr(3);  

element e;
e.setVal(num, rest);

setVal(string n, string m) {
  str = m;
  istringstream buffer(n);
  buffer >> num;
}

其中,原始结构是:

代码语言:javascript
运行
复制
struct element {
 int nr;
 string str;
};  
票数 0
EN

Stack Overflow用户

发布于 2011-05-11 02:51:38

感谢你的帮助

代码语言:javascript
运行
复制
struct Telem {
int nrte;
string s;
int dims;
};

我需要从文件中读取一行,并将该行转换为我希望的元素,希望它能帮助其他人解决类似的问题

代码语言:javascript
运行
复制
Telem TelemDinString( string k )
{
    Telem a;
    Init(a);

    string buf;
    stringstream ss(k);
    vector<string> tokens;
    while ( ss >> buf )
        tokens.push_back(buf);
    int nr;

    stringstream convert( tokens[0] );
    if ( !( convert >> nr ) )
        nr=-1;
    a.nrte = nr;
    a.s = tokens[1];
    a.dims=a.s.length();

return a;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5936631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档