以前のリビジョンの文書です
====== TString ====== ---- ===== 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)。Data関数の意味は?よくわからん ---- ===== Form ===== ==== 基本的な使い方 ==== * std::string 的な <code c_mac> cout << Form("hoge%d.root",1) << endl;// 第一引数に " " で囲んだ文字列、第二引数に %d などに入る数字などがくる // hoge1.root と出力される </code> * printf() とかと同じ感じ * ---- ==== LOOPで生成 ==== * 同じもの(TH1Dなど)をいくつも生成したい場合 * 同じ名前で生成するとダメ <code c_mac> TH1D *hist[10]; //先に10個のヒストグラムを確保 for (Int_t i = 0 ; i < 10 ; i++){ hist[i] = new TH1D(Form("hist%d",i+1)); //newでそれぞれの名前のヒストグラムを割り当てる } </code> ---- ===== その他使い方、関数など色々 ===== <code c_mac> 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> ----