• c++中的string用法(二)


    转载自:http://www.programfan.com/blog/article.asp?id=16881

    basic_string::compare

    如果所比较的两个string 相等,则返回0; 操作string 大于参数string,返回

    正数;操作string 小于参数string,返回负数。

    (1)比较操作string _Str 或C-string_Ptr

    int compare( const basic_string& _Str ) const;

    int compare( const value_type* _Ptr ) const;

    int com = s.compare ( sp );

    (2)比较操作string _Pos1(下标)开始的_Num1 个字符 与 string_Str

    比较操作string _Pos1(下标)开始的_Num1 个字符 与 C-string _Ptr

    比较操作string Pos1(下标)开始的Num1 个字符 与Str Off(下标)开始Count 个字

    int compare( size_type _Pos1, size_type _Num1, const basic_string& _Str );

    int compare( size_type _Pos1, size_type _Num1, const value_type* _Ptr ) const;

    int compare( size_type _Pos1, size_type _Num1, const basic_string& _Str,

    size_type _Off, size_type _Count );

    int com1 = s.compare ( 2 , 3 , sp );

    int com2 = s.compare ( 2 , 3 , c );

    int com3 = s.compare ( 1 , 3 , cs , 3 ,1 );

    basic_string::erase

    删除string 中的一个或几个元素。前两个成员函数,返回要被删除的子串的下

    一个元素的iterator; 第三个函数,返回删除后的string 的引用。

    (1)删除string 中从_First _Last 的字符

    iterator erase( iterator _First, iterator _Last );

    basic_string <char>::iterator s_Iter;

    s_Iter = s.erase ( s.begin ( ) + 3 , s.end ( ) - 1 ); // s_Iter=s.end( )

    (2) 删除string _It 所指的字符

    iterator erase( iterator _It );

    s_Iter = s.erase ( s.begin ( ) + 5 );

    (3) 删除string 中从_Pos(下标)开始的_Count 个字符

    basic_string& erase( size_type _Pos = 0, size_type _Count = npos );

    str = s.erase ( 6 , 8 ); // str 也是string

    basic_string::find

    寻找给定的string。返回找到的第一个string 下标值;如果没找到则返回npos。

    (1)找一个character_Ch。(默认从头找)

    size_type find( value_type _Ch, size_type _Off = 0 ) const;

    string s ( "Hello Everyone" );

    basic_string <char>::size_type index1, index2;

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

    index1 = s.find ( "e" , 3 ); // index1=8,不是6

    index2 = s.find ( "x" ); // index2=-1

    if (indexCh1a != npos ) cout <<indexCh1a << endl;

    else cout << "The character 'e' was not found in str1 ." << endl;

    (2)找一个C-string。(默认从头找)

    size_type find( const value_type* _Ptr, size_type _Off = 0 ) const;

    string s ( "Let me make this perfectly clear." );

    basic_string <char>::size_type index;

    const char *c = "perfect";

    index = s.find ( c , 5 ); // index=17

    (3)找一个string。(默认从头找)

    size_type find( const basic_string& _Str, size_type _Off = 0 ) const;

    string s ( "clearly this perfectly unclear." );

    basic_string <char>::size_type index;

    string sta ( "clear" );

    index = s.find ( sta , 5 ); // index=24

  • 相关阅读:
    非foreach情况下取某一节点的position()
    MorningSale 介绍
    XSLT中的内容自动换列
    十年相伴一首歌
    Navicat的强大自动定时备份
    Xshell6评估期已过的解决方法
    Ext JS继承: 关于object, constructor和prototype
    WCF+Silverlight 异常处理
    Adding/removing fields and columns drag & drop bug's fix
    WCF部署至IIS问题二则
  • 原文地址:https://www.cnblogs.com/allenzhaox/p/3201755.html
Copyright © 2020-2023  润新知