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/11 00:33]
kota [その他関数など色々]
ja:root:tstring [2018/02/06 07:21] (現在)
kota [基本的な使い方]
ライン 6: ライン 6:
 ===== TString型の変数に文字を入れる ===== ===== TString型の変数に文字を入れる =====
  
 +  * 初期化
   * やり方色々   * やり方色々
 <code c_mac> <code c_mac>
-TString str("​hoge"​); ​ //​ありがち+TString str("​hoge"​);​
  
-TString str = "​hoge"; ​//​こちらもありがち+TString str = "​hoge";​
  
 TString str;          //​まず宣言してから TString str;          //​まず宣言してから
ライン 28: ライン 29:
  
  
 +----
  
   * 文字列を使うときは以下のようにする。   * 文字列を使うときは以下のようにする。
ライン 35: ライン 36:
 cout << str.Data() << endl; cout << str.Data() << endl;
 </​code>​ </​code>​
-  * 上の2つの出力は同じ(hoge)。Data関数の意味?よくわからん+  * 上の2つの出力は同じ(hoge)。TString::Data()は Char_t* を返している。
  
  
ライン 41: ライン 42:
 ===== Form ===== ===== 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> <code c_mac>
-str += "​huge"; ​     //​strの最後に”huge”を足すー>str = hogehuge 
  
-str.First("​g"​); ​    ​//​最初にでてきた ” ” で指定された文字の場所(配列番号)を返す。今回の場合、 2 を返す。 +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.Insert(str.First("​g"​),"​u"​);//​最初にでてきた”g”の直前に”u”が挿入されるー>str = hougehuge
  
-str.ReplaceAll("​houge","​hoge"​);//"​hougehuge"​を"​hoge"​に置き換えるー>str = hogehage+str.ReplaceAll("​houge","​hoge"​);//"​hougehuge"​を"​hoge"​に置き換えるー>str = hogehuge 
 + 
 +str.ToUpper(); ​ //​すべて大文字にー>str = HOGEHUGE
  
 +str.ToLower(); ​ //​すべて小文字にー>str = hogehuge
  
 </​code>​ </​code>​
ja/root/tstring.1397176416.txt.gz · 最終更新: 2014/04/11 00:33 by kota