トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
C++
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索

___

■ 文字列(String)





  DESC
    c++ 標準ライブラリとして用意されている。
    C-String と比較して次のメリットがある

     安全性: 配列境界を超えない
     利便性: 標準C++ 演算子の使用が可能
     一貫性: 文字列という型を定義できる
   
    sizeof( string ) = 4;
    文字列を格納する際に, new, delete をしている

    string 型は クラステンプレート basic_string の実装のひとつ
    typedef basic_string< char, char_traits< char>, allocator< char> >    string;      
      // 空 string
      string();

      // C_String str を使用して生成
      string( const char *str );  
      
      // 他のstringを使用して string 生成
      string(const string &str);  


演算子 + string + string string + c_str c_str + string c_str + string
    // Compile ERROR にならないが "7" は追加されない
    string s;
    s += 7;
___

■ 結合

      string s;
      s += "a";
      s += "b";
      s += "c";

      //  "abc"
      printf( "%s", s.c_str() );

      s[1] = '\0';
      // "a"
      printf( "%s", s.c_str() );

___

■ 文字数

SYNTAX size_type size();
    // 3
    string s = "abc";
    s.size();
___

■ 参照

    // 参照
    char operator[](  idx );   
___

■ 検索

SYNTAX size_type find( const string &str, size // 検索する文字列 _type pos = 0 // 検索を開始するオフセット ); RET N : 見つかったインデックス位置 string::npos : 見つからない
    // 検索
    if ( s.find( "abc" ) != string::npos ) {

    }

    // 後ろから検索
    s.rfind( "abc" );

if ( string1 == string2 ){} string1 = string2; // string を代入 string1 = "foobar\n"; // C_string を代入 パスからファイル名をかえす。
    string filename( const string &path )
    {
      size_t i = path.find_last_of("/");
      string ret = path.substr(i+1, path.length());

      return ret;
    }

    string dirname( const string &path )
    {
      size_t i = path.find_last_of("/");
      string ret = path.substr(0, i);

      return ret;
    }
___

■ 部分文字列

substr SYNTAX basic_string substr(size_type pos = 0, size_type n = nr) const; DESC pos で指定した index から n 個の文字列を返す。 assign ( 部分列. ) str から、pos文字目から、n文字を取り出して設定 assign( const basic_string& str, size_type pos = 0, size_type n = npos );
___

■ 比較

compare ( 比較 ) // 文字列定数sのn文字までとの比較を行う。 int compare(const char* s, size_type pos, size_type n) const;
    string s = "foo bar g";

    // 3
    int nr = s.find(" "); 

    // 7
    int nr = s.rfind(" "); 
    
    // 0 番目から 3 個
    // foo
    s.substr( 0, 3 );

    // 見つからない場合は, -1 
    int nr = s.rfind("foo");

POINT string class はコンテナ ∴ 文字列の先頭、末尾を指す、begin(), end(), size() をサポート static にした場合は, Compiler 単位で作成されるので重複してしまう.
      // foo.h 重複しない.
  extern const char *strtbl[];
      // foo.cpp
      const char *strtbl[] = {
          "a",
          "b",
          "c",
        };
      // foo.h -> 重複する.
      static const char *strtbl[] = {
          "a",
          "b",
          "c",
        };


NINJAIDX 12