to_stream函数让解析字符串更简单

ZDNet软件频道 时间:2003-06-20 作者:翻译:Java研究组织-郭晓刚 |  我要评论()
本文关键词:cpptips
开发人员常常需要解析字符串。你可以使用低层的C函数strtok(尽管不推荐这样做),或者你可以自己写一个字符串分割器(string tokenizer)或者找一个现成的实现。
本文译自Builder.com,未经许可请勿转载开发人员常常需要解析字符串。你可以使用低层的C函数strtok(尽管不推荐这样做),或者你可以自己写一个字符串分割器(string tokenizer)或者找一个现成的实现。

不管怎样,你通常会需要作一些基本的解析,其中分隔字符(token)用的是空格字符。对于这个基本需求,你可以从你的字符串创建一个stringstream,并用运算符“>>”来解析出每个词(然后把它视作你希望的任何意义)。

下面是一个例子:

#include <string>
#include <iostream>
#include <sstream>

int main(int argc, char* argv[])
{
    // 输入字符串
    std::string strInput = "John Doe 355223";
    // 创建一个stringstream,逐个单词地解析它
    std::stringstream streamIn( strInput);

    std::string strFirstName;
    std::string strLastName;
    int nID;
    streamIn >> strFirstName >> strLastName >> nID;

    // 显示我们解析出来的信息
    std::cout << "First name: " << strFirstName << std::endl
        << "Last name: " << strLastName << std::endl
        << "Employee ID: " << nID << std::endl;
    return 0;
}

你可以自动化上面的过程,通过一个函数,只要给它一个字符串作为参数,就返回一个stringstream供你稍后解析


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134