char[],char*,string間変換
テキストリンク:https://blog.csdn.net/yzhang6_10/article/details/51164300 char[]とchar*間の変換 char[]転char*:直接付与すれば char*回転char[]:文字コピー実装、付与操作不可 charとconst charの間の変換 const char転送char:コピー実装、付与できない char回転const char:直接付与 char*とstring間の変換 char*回転string:1)直接付与;2)構造変換実現 string char*:付与操作(注意型変換) char[]とstring間の変換 char[]回転string:1)直接付与;2)構造変換実現 string回転char[]:コピー実装、 直接付与できないまとめ char[]とchar*の変換
char[]char*:直接値を付与すればよい
char*転char[]:文字コピー実装、付与操作不可
charとconst charの間の変換
const char転char:コピー実装、付与不可
char回転const char:直接付与
char*とstring間の変換
char*回転string:1)直接付与;2)構造転換実現
string char*:付与操作(タイプ変換に注意)
char[]とstring間の変換
char[]回転string:1)直接付与;2)構造転換実現
string回転char[]:コピー実装、直接値付与不可
まとめ
char[]文字配列と他のタイプの変換に関連し、一般的にはコピーが必要であり、直接値を割り当てることはできません.char[]とchar*は、新しいstringを構築することによってstringへの変換を完了することができます.char*変換に関しては、タイプが一致していることに注意し、constの使用に注意する必要があります.
char[]char*:直接値を付与すればよい
// char[] char *
char str[] = "lala";
char *str1 = str;
cout << str1 << endl;
char*転char[]:文字コピー実装、付与操作不可
// char * char []
const char *st = "hehe";
char st1[] = "lalalala";
strncpy(st1, st, strlen(st) + 1); // 1
// tp = temp; // ,
cout << st1 << endl;
charとconst charの間の変換
const char転char:コピー実装、付与不可
// const char * char *
const char *st = "lala";
//
//char *st1 = st; // ( )
//cout << st1 << endl;
// ,
char *ncstr = new char[strlen(st) + 1];
strcpy(ncstr, st);
cout << ncstr << endl;
char回転const char:直接付与
// char * const char *
char *st = "hehe"; // ( )
const char *st1 = st;
cout << st1 << endl;
char*とstring間の変換
char*回転string:1)直接付与;2)構造転換実現
// char* string
// ( , char * , , const , )
const char *st = "hello";
//
string st1 = st;
cout << st1 << endl;
//
string s1(st, st + strlen(st));
cout << s1 << endl;
// const char *
st = "lalala";
cout << st << endl;
string char*:付与操作(タイプ変換に注意)
// string char *
string st = "My test";
//char *st1 = st; //
//char *st1 = st.c_str(); //
char *st1 = const_cast(st.c_str()) ;
cout << st1 << endl;
char[]とstring間の変換
char[]回転string:1)直接付与;2)構造転換実現
// char[] string
char st[] = "hello";
//
string st1 = st;
cout << st1 << endl;
//
string st2(st, st + strlen(st));
cout << st2 << endl;
string回転char[]:コピー実装、直接値付与不可
// string char []
string ts = "My test1";
//char ts1[] = ts; //
//char ts1[] = const_cast(ts.c_str()); //
char ts1[] = "lalallalalaaaa";
strncpy(ts1, ts.c_str(), ts.length() + 1); // , 1, '\0'
cout << ts1 << endl;
return 0;
まとめ
char[]文字配列と他のタイプの変換に関連し、一般的にはコピーが必要であり、直接値を割り当てることはできません.char[]とchar*は、新しいstringを構築することによってstringへの変換を完了することができます.char*変換に関しては、タイプが一致していることに注意し、constの使用に注意する必要があります.