8.1 C#の文字列

番号 以下をクリックすると,該当箇所にジャンプします
(1) 文字列リテラル
(2) 文字列コードを確認するプログラム
(3) 配列による文字列

(1)文字列リテラル

C#では,“ABCD”のように
文字列を2重引用符で挟んで指定します。例えば
ASCIIコード体系のとき,以下のような内部形式となります。



ただし,各文字の具体的な値は,文字コード体系によって異なります。
長さも,8ビットと限らず,9ビット,16ビット,32ビット等の
処理系も存在します。

例えば,日本語等を扱う場合,Microsoft Windowsでは,
1文字16ビットで扱われます。

旧来は,英数字半角文字は8ビット,日本語文字は16ビットで
扱うことが多かったのですが,処理が複雑になるので,
最近は両方ともに16ビットで扱う方法が主流です。


番号 以下をクリックすると,該当箇所にジャンプします
(1) 文字列リテラル
(2) 文字列コードを確認するプログラム
(3) 配列による文字列

(2)文字列コードを確認するプログラム

次のプログラムは,文字列内の文字を16進数と2進数で
listBox1に表示するプログラムです。

[文字列コードを確認するプログラム]
private string binaryScaleString(long V)
{
 long VV=V;string S="";
 for(int i=0;i<16;i++, VV /=2 )
    S = ((VV % 2 ==0) ? "0" : "1") + S;
 return S;
}

private void strDump(string S)
{
 listBox1.Items.Clear();
 for(int i=0;i<S.Length;i++)
 {
   long V=(long)S[i];
   string X = V.ToString("X");
   string B = binaryScaleString(V);
   if(X.Length==2) X = " " + X;
   listBox1.Items.Add
     (S[i].ToString() + "\t" + X + "\t" + B);
 }
}

private void button1_Click(object sender, System.EventArgs e)
{ strDump("文字列string"); }


         (実行結果)
        

番号 以下をクリックすると,該当箇所にジャンプします
(1) 文字列リテラル
(2) 文字列コードを確認するプログラム
(3) 配列による文字列

(3)配列による文字列

文字リテラルは,本来,
その内容を自由に書き換えて使うものではありません。

ですから,C#では,stringはRead Only とみなされており,
陽に代入は許されません.

自由に入れ替える処理を記述するためには,
次のようにchar型の配列として宣言します。

なお,char型配列をstringとして扱うには,
以下の例のようにCharToString関数を使います。

この部分は,CやC++と異なる点です。

  private void button2_Click(object sender, System.EventArgs e)
  {
    char[] CH =new char[10];
    CH[0]='文';CH[1]='字';CH[2]='列';
    CH[3]='s' ;CH[4]='t' ;CH[5]='r' ;
    CH[6]=’i' ;CH[7]='n' ;CH[8]='g';CH[9]='\0';
    strDump(CharToString(CH));
  }

番号 以下をクリックすると,該当箇所にジャンプします
(1) 文字列リテラル
(2) 文字列コードを確認するプログラム
(3) 配列による文字列


1. 基本的なアルゴリズム

2. 基本的なデータ構造

3. 操作を伴うデータ構造

4. 探索

5. 再帰的アルゴリズム

6. ソート

7. 集合

8. 文字列処理

9. 色々なアルゴリズム


上のタイトルをクリックします