string⇔char[]

abc
「abc」の文字数は3です
C#の文字形式
「C#の文字形式」の文字数は7です
「C#の文字形式」の4番目の文字は「文」です

C# の string 型と char 型と char 配列の 説明です。

前田稔(Maeda Minoru)の超初心者のプログラム入門

string の説明

  1. string(文字列)型と char(文字)型は、主としてコンソールとの入出力に使われる型で、普通計算には使われません。
    string は char の配列のようなものですが、サイズを意識する必要が無いことや、専用のメソッドが使える点が異なります。
    文字(char) の場合はシングルクォーテーション(')で囲うという決まりがあります。
    文字列(string) の場合はダブルクォーテーション(")で囲うという決まりがあります。
  2. Windows(VC++) では "Shift_JIS" が標準コードとして使われていました。
    "Shift_JIS" は、半角文字は1バイトで、日本語のような全角文字は2バイトで表現します。
    最近では標準コードが "Shift_JIS" から Unicode(UTF-16) に変わりつつあり、C#では全て2バイトで表現します。
    文字コードの説明は Store Guide を参照して下さい。
    半角文字も全角文字も一文字(2バイト)として処理されていることに注目して下さい。
  3. C# には string と String がありますが、どちらも同じようなものと思って下さい。
    /*★ String の基礎     前田 稔 ★*/
    using System;
    
    class Prog
    {
        static string str1 = "str1 abc";
        static String str2 = "str2 XYZ";
        //static string str3 = new String(new char[]{'S','t','r','i','n','g'});
        static string str3 = new string(new char[]{'s','t','r','i','n','g'});
    
        public static void Main()
        {
            Console.WriteLine(str1);
            Console.WriteLine(str2);
            Console.WriteLine(str3);
            Console.ReadLine();
        }
    }
    
  4. string は Object Class で定義されていて便利なメソッドを持っています。
    Length や Substring や IndexOf はその代表です。
    string は str1 = "str1 abc"; のように文字列をダブルクオーテーションで括って定義することが出来ます。
    new で生成するときは、第一引数にキャラクターの配列を指定して下さい。

C#の文字形式

  1. 次の文字列「C#の文字形式」では「C#」を半角で、後の文字を全角でタイプしています。
    プログラムの実行結果は文字数は7文字で、4番目の文字は「文」になります。
  2. ソースコードです。
    //★ string と char     前田 稔 ★
    using System;
    
    class Prog
    {
        public static void Main()
        {
            char[] chararray = new char[3];
            chararray[0] = 'a';
            chararray[1] = 'b';
            chararray[2] = 'c';
    
            string str;
            str = new string(chararray);
            Console.WriteLine(str);
            int n = str.Length;
            Console.WriteLine("「{0}」の文字数は{1}です", str, n);
    
            char[] title = {'C', '#', 'の', '文', '字', '形', '式'};
            string strTitle = new string(title);
            Console.WriteLine(strTitle);
            n = title.Length;
            Console.WriteLine("「{0}」の文字数は{1}です", strTitle, n);
    
            char c = title[3];
            Console.WriteLine("「{0}」の4番目の文字は「{1}」です", strTitle, c);
            Console.ReadLine();
        }
    }
    

char[] ⇔ string

  1. char 配列と string 間の相互変換のプログラムです。
    文字列処理は string を使うのが一般的ですが、C++ 時代には char 配列を使っていました。
    C# では文字列処理に char 配列を使うことは少ないと思いますが、相互変換の説明です。
  2. ソースコードです。
    //★ char[] ⇔ string       前田 稔 ★
    using System;
    
    class Text
    {
        public static void Main()
        {
            char[]  chr1 = "ABCDefgh".ToCharArray();
            string  str1 = new string(chr1);
            Console.WriteLine(str1);
    
            string  str2 = "IJKLMN前田稔";
            char[]  chr2 = str2.ToCharArray(2,6);
            Console.WriteLine("[{0}] のサイズは{1}です", str2,str2.Length);
            Console.WriteLine(new string(chr2));
    
            Console.ReadLine();
        }
    }
    
  3. ToCharArray() で string から char 配列を生成することが出来ます。
    str2.ToCharArray(2,6); は str2 の「2文字目から6文字」を char 配列に変換します。
    同様に new string(chr1) で char 配列から string を生成することが出来ます。
    実行の結果です。
    C:\DATA\C#\BAT\Prog1>Char_Str
    ABCDefgh
    [IJKLMN前田稔] のサイズは9です
    KLMN前田
    

【NOTE】

今までのプログラム(VC++ など)では、半角と全角とでバイト数が異なることが難点でした。 (^_^;)
C#では文字をワイドキャラ(2バイト?)に統一して、プログラミングしやすくなっています。
それに伴いファイルコード(Shift-JIS, EUC など)と内部コード(Unicode)の変換機能が強化されています。

余談ですが Shift-JIS で使われている全角の2バイトコードは実に曲者でした。 (^_^;)
特に全角の2バイト目に \(5C) などの制御コードと同じコードが現れることに常に悩まされて続けてきました。
これでこの問題も解決するのでしょうか。 \(^o^)/
詳細は 前田稔の超初心者のプログラム入門 から 「C言語 Windows/フルパスを調べる」を参照して下さい。

[Next Chapter ↓]カンマで区切られた数字を配列に変換

超初心者のプログラム入門(C# Frame Work)