C ++は、文字、文字列とint型の変換は、ここでは心の中で非常に良い質問、継続的に更新されます良い方法があり、合計です。
文字列と1.char
charが基本データ型で、文字列は、標準クラスは、いくつかの操作をカプセル化し、使用中に異なっています。
列に変換するとき1.1のchar *またはchar []、それは直接割り当てることができます。
string x;
string y;
char *ptr1 = "sakura";
char ptr2[]= "waseda";
x = ptr1;
y = ptr2;
* 1.2文字列またはchar []文字に変換すると、3つの方法があります。
1.2.1文字列は、c_str()関数を使用して構築されました。文字列が最終的に破壊をもたらすされているため、直接的な割り当て、クラスオブジェクトこと音符値がヌルポインタとなる左。追加のターミネータ\ 0
string x = "waseda";
char *ptr;
strcpy(ptr,x.c_str());
1.2.2内蔵文字列データ()関数。追加のターミネータん\ 0
string x = "waseda";
char *ptr;
strcpy(ptr,x.data());
1.2.3文字列建てコピー()関数。追加のターミネータん\ 0
string str="waseda";
char ptr[10];
str.copy(ptr,5,0);
2.charとint型
2.1 char型のデジタイザint型、直接保存 '0' のように。ATOIを使用して文字配列にstringstream。
char u = '3';
int num0 = u-'0';
char x[] = "223";
char *k = "233";
int num1 = atoi(x);
int num2 = atoi(k);
//stringstream
int num0;
char x[10] = "233" ;
stringstream ss;
ss<<x;
ss>>num0;
2.2 int型のcharデジタルターンは、 '0' に直接適用されます。char配列はATOI、sprintfの、にstringstreamを使用することができます。
2.2.1 itoaは、Windowsプラットフォームのユニークな機能は、普遍的ではありません。3番目のパラメータは、使用する基数です。
int num0 = 233;
char x[10] ;
itoa(num0,x,10);
2.2.2 sprintf関数
int num0 = 233;
char x[10] ;
sprintf(x, "%d", num0);
2.2.2にstringstreamは、再利用が明確に覚えています。
int num0 = 233;
char x[10] ;
stringstream ss;
ss<<num0;
ss>>x;
3.stringとint型
3.1 int型のターン文字列、TO_STRINGにstringstream機能を構築し、流れてきたSTD。
3.1.1 to_stringに
string str ;
int num=233;
str = to_string(num);
3.1.2にstringstream、またはフロー()関数を使用して、文字列strに出力してもよいです。
int num = 233;
string str ;
stringstream ss;
ss<<num;
ss>>str;
cout<<str<<endl;//第一种
cout<<ss.str()<<endl;//第二种
3.2文字列のターンint型、char型、その後、最初のint型の方法にそこに変換されますが、STOIとにstringstreamを建てSTD
3.2.1 c_str()、ATOI()トランジット
int num ;
string str="233" ;
stringstream ss;
num = atoi(str.c_str());
3.2.2スタンド
int num ;
string str="233" ;
stringstream ss;
num = stoi(str);
3.2.3にstringstream
int num0;
string str = "233" ;
stringstream ss;
ss<<str;
ss>>num0;