C++におけるint,string,const char*,CString間の相互変換

5722 ワード

1.intとstringの相互変換
stringstreamを使用するとstringstreamは異なるタイプを飲み込み、bのタイプに応じて異なるタイプを吐き出すことができます.
//#include

int a=80;
stringstream ss;
ss<string str = ss.str();
cout<//80
int b;
ss >> b;
cout << b << endl; // 30

2.stringとconst char*の相互変換
(1)string回転const char*stringクラスのc_str()関数でstringオブジェクトをcの文字列のスタイルに変換し、「0」の文字列配列を返し、.data()は「0」の文字列配列がないことを返す
string s1 = "abcdeg";
const char *k = s1.c_str();
cout<

注意:c_str関数の戻り値はconst char*であり、char*(2)const char*に直接値を割り当てることはできません.
const char* s1 ="abc";
string s(s1);

3.stringとchar*の相互変換
(1)string char*はstringの1つのメンバー関数copyで実現する
string s1 = "abcdefg";
char *data;
int len = s1.length();
data = (char *)malloc((len+1)*sizeof(char));
s1.copy(data,len,0);
printf("%s",data);
cout<<data;

(2)char*回転string
char* c ="abc";
string s(c);

4.intとchar*の相互変換
(1)int回転char*
itoaの使用
//char *itoa( int value, char *string,int radix);
 // value:      。
 // string:        。
 // radix:       ,   10  、16   。
 //     string        

    int aa = 80;
    char c[8];
    _itoa(aa, c, 10);
    cout << c << endl; // 80

補足:
  • ltoa():ロング整数値を文字列に変換します.

  • sprintfの使用
     int n = 100;
     char t[10];
     sprintf(t, "%d", n);
     cout<

    (2)char*回転int
    int a; //       。
    char c = '7'; //      。
    a = c - '0'; 

    atoi関数の使用
    //#include 
    char str[]="1234";
    int a=atoi(str);

    補足:
  • atof():文字列を二重精度浮動小数点型値に変換します.
  • atol():文字列をロング整数値に変換します.

  • 5.StringとCStringの相互変換
    const char*タイプは、CStringタイプに直接値を割り当てることができます.たとえば、次のようにします.
    const char* c="hello"
    CString cstr=c;

    CString型変数はstring型変数に直接値を付与ことができるが、string型はCString型に直接値を付与ことができない.したがって、stringをCStringに変換するには、stringタイプ変数をconst char*タイプに変換してから、直接値を割り当てるといいです.
    CString cstr;
    string str="abcdefg";
    cstr = str.c_str();

    CStringをconst char*に変換する方法は以下の通りである:まずStringタイプに移行し、再利用する.c_str()をconst char*に変換
    CString cstr="abcdefg"
    string str = cstr;
    const char* c = srt.c_str();

    6.CStringとintの相互変換
    int a,b=4,c=5;
    CSting  cstr1=_T("abc"),cstr2;
    
    a=_ttoi(cstr1);
    cstr2.Format(_T("%d"),c);