C ++文字列タイプと数値間の変換

C ++文字列タイプと数値間の変換

転載: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 ++の基本概念

おすすめ

転載: blog.csdn.net/digitalkee/article/details/108237428
おすすめ