Deprecated: Array and string offset access syntax with curly braces is deprecated in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/init.php on line 542
ja:root:tstring [GiriWiki]

ユーザ用ツール

サイト用ツール


ja:root:tstring

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
ja:root:tstring [2014/04/08 04:55]
kota 作成
ja:root:tstring [2018/02/06 07:21] (現在)
kota [基本的な使い方]
ライン 4: ライン 4:
 ---- ----
  
 +===== TString型の変数に文字を入れる =====
 +
 +  * 初期化
 +  * やり方色々
 +<code c_mac>
 +TString str("​hoge"​);​
 +
 +TString str = "​hoge";​
 +
 +TString str;          //​まず宣言してから
 +str.Form("​hoge"​); ​    //​Form関数を使って値を入れる
 +
 +</​code>​
 +
 +  * TString文字列は配列として入っている(というか char* )。この例だと
 +    * s1[0] ーー> h
 +    * s1[1] ーー> o
 +    * s1[2] ーー> g
 +    * s1[3] ーー> e
 +
 +  * 32-bit なら11文字以下、64-bit なら15文字以下?
 +  * str(0,2) 等で文字列の0番目から2番目(1文字目〜3文字目)を取り出せる。
 +  *  TString s("​hello world"​) の様に空白もOK
 +
 +
 +----
 +
 +  * 文字列を使うときは以下のようにする。
 +<code c_mac>
 +cout << str << endl;
 +cout << str.Data() << endl;
 +</​code>​
 +  * 上の2つの出力は同じ(hoge)。TString::​Data()は Char_t* を返している。
 +
 +
 +----
 +===== Form =====
 +
 +==== 基本的な使い方 ====
 +  * std::string 的なもの
 +
 +<code c_mac>
 + cout << Form("​hoge%d.root",​1) << endl;// 第一引数に " " で囲んだ文字列、第二引数に %d などに入る数字などがくる
 +                                       // hoge1.root と出力される
 +
 + cout << Form("​hoge%02d.root",​1) << ","​ << Form("​hoge%03d.root",​1) << endl;
 +                                       //​フォーマット指定子のリーディングゼロの機能(0詰め)を使うと、
 +                                       //​hoge01.root , hoge001.root と出力される
 +</​code>​
 +
 +  * printf() とかと同じ感じ
 +    * フォーマット指定子
 +      * %d  : int , short
 +      * %f  : float 
 +      * %lf : double
 +      * %c  : char  (1文字)
 +      * %s  : char* , TString (文字列)
 +      * %lld: Long64_t
 +
 +----
 +
 +==== LOOPで生成 ====
 +
 +  * 同じもの(TH1Dなど)をいくつも生成したい場合
 +  * 同じ名前で生成するとダメ
 +<code c_mac>
 +
 + const Int_t Nhist = 10; //const がないと次の行でエラーがでる
 + TH1D *hist[Nhist]; ​                             //​先に10個のヒストグラムを確保
 + for (Int_t i = 0 ; i < Nhist ; i++){
 +     ​hist[i] = new TH1D(Form("​hist%d",​i+1)); ​ //​newでそれぞれの名前のヒストグラムを割り当てる
 +    }  ​
 +</​code>​
 +
 +----
 +
 +
 +===== その他使い方、関数など色々 =====
 +
 +<code c_mac>
 +
 +TString s1 = "​hoge";​
 +TString s2 = "​hoge";​
 +s1 += s2;    //​s1の後ろにs2を加えるー> s1 = hogehoge
 +s1 += "​hoge"​ //​s1の後ろに hoge を加えるー> s1 = hogehogehoge
 +
 +
 +
 +str += "​hage"; ​ //​strの最後に”huge”を足すー>str = hogehage
 +
 +str[5] = '​u'; ​  //​5番目の文字をuに変えるー>str = hogehuge
 +                // ' ' で囲まなくてはならない。"​ " で囲むとおかしな結果になる。<ー何故?
 +
 +
 +str.First("​g"​);​ //​最初にでてきた ” ” で指定された文字の場所(配列番号)を返す。今回の場合、 2 を返す。
 +                //​文字でなく文字列を指定した場合、その先頭の文字の番号を返す
 +                    ​
 +str.Insert(str.First("​g"​),"​u"​);//​最初にでてきた”g”の直前に”u”が挿入されるー>str = hougehuge
 +
 +str.ReplaceAll("​houge","​hoge"​);//"​hougehuge"​を"​hoge"​に置き換えるー>str = hogehuge
 +
 +str.ToUpper(); ​ //​すべて大文字にー>str = HOGEHUGE
 +
 +str.ToLower(); ​ //​すべて小文字にー>str = hogehuge
 +
 +</​code>​
 +
 +
 +----
  
ja/root/tstring.1396932954.txt.gz · 最終更新: 2014/04/08 04:55 by kota