Stringクラスオブジェクト


Stringクラス
1.意味
  • 1.1文字列の操作を容易にするために、C標準ライブラリはstrシリーズのライブラリ関数をいくつか提供しています.
  • 1.2典型的な面接問題文字列転整形数字文字列加算
  • 2.標準ライブラリのstringクラス
    2.1 stringクラス
  • stringは文字列を表す文字列クラス
  • である.
  • このクラスのインタフェースは、従来のコンテナのインタフェースとほぼ同じであり、stringを操作するための通常の操作を追加した.
  • stringクラスは最下位で実際にはbasic_stringテンプレートクラスの別名、typdef basic_stringstring;
  • マルチバイトまたは長くなる文字を操作できないシーケンス
  • 2.2共通インタフェース
    2.2.1一般的な構造
  • string()は、stringクラスオブジェクト、すなわち空の文字列
  • を構築する.
  • string(const char*s)は、C-stringでstringクラスオブジェクトを作成します.
  • string(size_t n,char c)、stringクラスオブジェクトにN個の文字列c
  • が含まれる
  • string(const string&s)、コピー構造関数
  • 2.2.2 stringクラスオブジェクトの容量操作
    関数名
    機能
    size
    文字列の有効文字長を返します
    length
    文字列の有効文字長を返します
    capacity
    スペースの合計サイズを返す
    empty
    検出文字列は空の列に解放され、trueを返します.そうしないとfalseを返します.
    clear
    有効文字をクリア
    reserve
    文字列のスペースの予約
    resize
    有効文字の個数をn個に変更し、複数の空間を文字cで埋める
    2.3定義と初期化
    定義:C言語:char s[3]={‘a’,‘b’,‘c’};stringクラス:string str;初期化:str="11123";str=“adbhbhf”; string str=sを同時に初期化することを定義します.
    2.4一般的な操作
    2.4.1挿入
    +、str.append();//        string   
    str.insert(n,s);//     n          string  s
    str.insert(n,s,m);//     n     s m   
    str.insert(n,m,c);//     n     m   c
    //  n,m       
    

    2.4.2削除
    str.erase(5);//     5(  5)       
    str.erase(1,4);//    1-4     
    str.erase(str.begin());//          
    str.erase(str.begin(),strbegin ()+3);//           
    
    //     
    str = “”;//    
    

    2.4.3置換
    str.replace(n,m,s);// m    n      s
    str.replace(n,m,s,x);// m    n      s  x   
    str.replace(n,m,x,c);// m    n      x   c
    str.replace(n,m,s,x,y);// m    n      s x  y   
    
    

    2.4.4検索
    str.find(c);//  str        c   
    str.find(s);//  str         s   
    str.rfind(c);//  str         c   
                      //        
    str.rfind(s);//  str          s   
    

    2.4.5比較
    stra.compare();//          string   
    //    1,    0,    -1
    

    3.1文字列と数値変換3.1.1文字列->数値
    sscanf(s,"%d",&a);
    double stod(const string &s);
    //   
    stoi();
    atoi();
    int i = atoi(s.c.str());//string  char*   atoi
    

    3.1.2数値->文字列
    itoa();//C     
    to_string();//c++