String
- string是字符串,在聲明一個字符串的時候,比如string a;這個過程是在棧上進行的,但是如果給這個字符串分配內存空間,這段區間是存儲在堆上的,因此最好在聲明字符串的時候就要指出字符串的大小和對其進行初始化
- string s1; 最好不要使用這種方式,效率低下
- string s3 = "Hello";可以使用
- string s4 = (10,'0');最好使用,不僅申請了一段內存空間還使用0對其進行初始化
直接初始化和拷貝初始化
- 使用等號,等號的右邊是一個字符串,那么這種方式是拷貝初始化
- 不使用等號,則執行的是直接初始化
string上的操作
- string會自動忽略開頭的空白,比如空白符、換行符、指標符等等,并從第一個真正的字符讀起,直到遇到下一處的空白為止
- 使用getline讀取一整行,函數的參數是一個輸入流和一個string對象,從輸入流中讀取數據存入到string中,只要遇到換行符就會停止讀取數據,雖然讀取了換行符號,但是換行符號不會被存儲到字符串中。
- 如果想要改變string對象中字符串的數值,必須把循環變量定義成引用類型,引用只是給定對象一個別名,當使用引用作為循環控制變量的時候,這個變量實際上被一次綁定到序列的每一個元素上,使用引用就可以改變綁定的字符。
std::string s("Hello World");for (auto &c : s) {c = toupper(c);}std::cout << s << std::endl;return 0;
- 使用string對象中的單個字符有兩種方式:1,使用下標;2,使用迭代器
?
?