第一種:利用賦值號直接賦值
char a = 40; string b = a; /* 錯誤。因為string是一個指針,存儲的值是所指向的地址,而char型存儲的是內容,所以不可以直接用賦值號賦值 */ const char* a = "hello"; string b = a; //正確 const char[] a = "hello"; string b = a; //正確
第二種:利用sting構造函數
查看一下string的構造函數:
1 string(); 2 3 string (const string& str); 4 5 string (const string& str, size_t pos, size_t len = npos); 6 7 string (const char* s); 8 9 string (const char* s, size_t n); 10 11 string (size_t n, char c); 12 13 template <class InputIterator> 14 string (InputIterator first, InputIterator last); 15 16 string (initializer_list<char> il); 17 18 string (string&& str) noexcept;
所以 --->
char a = 48; string b(a); //這種寫法是錯誤的,不可以直接傳過去。 //利用string(size_t n, char c) string b(1,a); //正確