zoukankan      html  css  js  c++  java
  • C++ 字符串分割

    #include <vcl.h>
    #include <string>
    #include <vector>
    #include <iostream>
    #pragma hdrstop

    #pragma argsused

    using namespace std;

    typedef basic_string<char>::size_type S_T;
    static const S_T npos = -1;

    vector<string> split( const string & src, string delimit, string null_subst = "" )
    {
    if ( src.empty() || delimit.empty() )
    throw "split: empty string\0";

    vector<string> v;
    S_T deli_len = delimit.size();
    long index = npos, last_search_position = 0;
    while ( (index = src.find( delimit, last_search_position ) ) != npos )
    {
    if ( index == last_search_position )
    v.push_back( null_subst );
    else
    v.push_back( src.substr( last_search_position, index - last_search_position ) );
    last_search_position = index + deli_len;
    }
    string last_one = src.substr( last_search_position );
    v.push_back( last_one.empty() ? null_subst : last_one );
    return(v);
    }

    vector<String> splitUnicodeString( String & src, String delimit )
    {
    vector<String> resultVec;
    vector<string> strVec = split( src.c_str(), delimit.c_str() );
    for ( int i = 0; i < strVec.size(); i++ )
    {
    String str( strVec[i].c_str() );
    resultVec.push_back( str );
    }
    return(resultVec);
    }

    int _tmain( int argc, _TCHAR* argv[] )
    {
    String s = "a,bcd,efg";
    String del = ",";
    vector<String> strVec = splitUnicodeString( s, del );
    for ( int i = 0; i < strVec.size(); i++ )
    {
    ShowMessage( strVec[i] );
    }

    return(0);
    }
  • 相关阅读:
    简单工厂模式
    1.go的Hello
    Scrapy003-项目流程
    Django1.9开发博客(6)- 模板继承
    Django开发博客- 页面美化
    Django开发博客- 三部曲
    Django开发博客- 部署
    Django开发博客- 模型
    Django开发博客 入门篇
    内装式模块
  • 原文地址:https://www.cnblogs.com/jerry1999/p/3677344.html
Copyright © 2011-2022 走看看