転載:http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html
1.文字列番号間の変換
文字列---文字配列
(1)文字列-> char *
string str( "OK");
char * p = str.c_str();
文字配列--- string
(2)char *-> string
char * p = "OK";
string str(p);
文字配列--- CString
(3)char *-> CString
char * p = "OK";
CString m_Str(p);
//または
CStringm_Str;
m_Str.Format( "%s"、p);
CString ---文字配列
(4)CString-> char *
CString str( "OK");
char * p = str.GetBuffer(0);
...
str.ReleaseBuffer();
(5)
string- > CString CString.Format( "%s"、string.c_str());
(6)
CString- > string string s(CString.GetBuffer(0));
GetBuffer()の後に必ずReleaseBufferを実行してください()、そうでない場合、バッファによって占有されているスペースは解放されず、CStringオブジェクトは動的に拡張できません。
(7)double / float-> CString
double data;
CString.Format( "%。2f"、data); //小数点以下2桁を保持
(8)CString-> double
CString s = "123.12";
double d = atof( s);
(9)string-> double
double d = atof(s.c_str());
2.文字列への数値:sprintf()関数
文字列フォーマットコマンドを使用します。主な関数はフォーマットされたデータを書き込むことです文字列で。
関数プロトタイプ
int sprintf(char * buffer、const char * format、[引数]…);
パラメータリスト
buffer:charポインター、書き込まれる文字列のバッファーを指します。
format:フォーマット文字列。
[引数] ...:オプションのパラメーター。任意のタイプのデータにすることができます。
戻り値
文字列の長さ(strlen)
char str [10];
int a = 1234321;
sprintf(str、 "%d"、a);
--------------------
char str [10];
double a = 123.321;
sprintf(str、 "%。3lf"、a);
--------------------
char str [10];
int a = 175;
sprintf( str、 "%x"、a); // 10出力大文字がsprintf(str、 "%X"、a)の場合、16進数は16進数に変換されます
------------ --------
char * itoa(int value、char * string、int radix);
数値を文字列に変換することもできますが、関数itoa()はプラットフォームに依存します(標準ではありません)。ここでこの機能を使用することはお勧めしません。
3.文字列を数値に変換します。sscanf()関数
を使用して、文字列から指定された形式に一致するデータを読み取ります。
str(string1); int i; stream1 >> i;
cout << i << endl; // 25を表示します
コードを書くことは芸術であり、モナリサの笑顔よりも優れています。
カテゴリ: C ++の基本概念