String & char

C:\DATA\Cpp\Maneged>String
abc
[abc] の文字数は3です
[LPCTSTR 文字列定義] の文字数は13です
LPCTSTR 文字列定義 の10番目から2文字は [列定] です

C/C++ の String 型の例題と、char 配列 ⇒ String の変換です。

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

プログラムの説明

  1. String(文字列)型と char(文字)型は、主としてコンソールとの入出力に使われる型で、普通計算には使われません。
    String は char の配列のようなものですが、サイズを意識する必要が無いことや、専用のメソッドが使える点が異なります。
    VC++ では半角文字は1バイトで、日本語のような全角文字は2バイトで格納されていました。
    今回プログラミングしたマネージドモードでは、全てワイドキャラで扱われているようです。
    半角文字も全角文字も一文字として処理されていることに注目して下さい。
  2. ソースコードです。
    [LPCTSTR 文字列定義] の文字数は13で、半角も全角の1文字になっています。
    また Substring(10,2) の値は "LPCTSTR 文字列定義" 中の "列定" で、こちらも1文字で計算されています。
    /**************************************/
    /*★ String と Character    前田 稔 ★*/
    /**************************************/
    using namespace System;
    
    int main()
    {
        char  array1[3];
        array1[0] = 'a';
        array1[1] = 'b';
        array1[2] = 'c';
    
        String^ str1 = gcnew String(array1);
        Console::WriteLine(str1);
        Console::WriteLine("[{0}] の文字数は{1}です", str1,str1->Length);
    
        char  array2[]= { "LPCTSTR 文字列定義" };
        String^ str2 = gcnew String(array2);
        Console::WriteLine("[{0}] の文字数は{1}です", str2,str2->Length);
    
        Console::WriteLine("{0} の10番目から2文字は [{1}] です", str2,str2->Substring(10,2));
        //System::Console::ReadLine();
        return 0;
    }
    
  3. C# でも同様のプログラム string⇔char[] を作成しています。
    MultiByte & Unicode でストリング関係のページを抜粋しています。

超初心者のプログラム入門(C/C++)