char 與char *之間轉換
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的使用。
---------------------
原文:
char 與char *之間轉換
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的使用。
---------------------
原文:
char ,char ,string之間轉換
char 與char 之間轉換 char 轉char 直接進行賦值即可 char 轉char char str lala char str1 str cout str1 endl char 轉char 字元拷貝實現,不能進行賦值操作 char 轉換為char const char st hehe c...
博學之,審問之,慎思之,明辨之,篤行之
禮記 中庸 十九章有云 博學之,審問之,慎思之,明辨之,篤行之。這說的是為學的幾個層次,或者說是幾個遞進的階段。博學之 意謂為學首先要廣泛的獵取,培養充沛而旺盛的好奇心。好奇心喪失了,為學的慾望隨之而消亡,博學遂為不可能之事。博 還意味著博大和寬容。惟有博大和寬容,才能相容幷包,使為學具有世界眼光和...
接觸之,熟悉之,打破之
接觸之,熟悉之,打破之 拿破崙小時候就是孩子王,不管同夥伴們玩什麼遊戲,它總是贏家。同時,它更善於改變遊戲規則,以便能夠發揮他自己的優勢。如果能夠成為遊戲規則的左右者,那麼,在當今商戰中必定是最大的贏家。我們處在乙個有著各種各樣遊戲規則的大環境中,每時每刻都要面對不同的遊戲規則,轉換不同的角色,讓自...