C++ string
string對象會自動忽略開頭的空白,并且在讀到第一次空白后終止。

如果我們想讀取一整行且不受空格的影響那么我們可以使用getline函數
getline的參數是一個輸入流和一個string對象,函數從給定的輸入流中讀取內容,直到遇到換行符為止(注意換行符也被讀取了)然后把所讀的內容存入到string對象中(不存換行符),如果讀取的一開始就是換行符那就會返回一個空的string。

getline和cin一樣會返回他的參數流,所以他可以作為if/while的條件。
string的size操作
size函數返回的是一個string::size_type類型的值,string類和其他大多數標準庫類型都定義了幾種配套的類型,這些配套類型體現了標準庫類型與機器無關的特性,size_type就是其中的一種,在使用時通過作用域操作符來表明size_type實在類string中定義的。
盡管我們不太清楚string::size_type的細節(jié),但是他是一個無符號類型的值,所以在使用時如果和負值的int比較大小無疑會小于這個負值(因為負值會自動轉換為一個比較大的無符號值)
string對象的相加
s1+=s2(等價于s1=s1+s2)其實就是把s2的內容串接到s1后。
注意:string對象在和字面值對象相加時,必須確保每個+號的兩側的運算對象至少有一個時string對象。

處于某些歷史原因也是為了和C語言兼容,c++語言中的字符串字面值并不是標準庫類型的string對象。切記,字符串字面值與string時不同的類型。
cctype頭文件

C++的C標準庫頭文件
C++實現了對C語言標準庫的兼容,C語言的頭文件命名格式為name.h,C++則會將這些頭文件命名為cname,所以cctype其實和ctype.h是一樣的。特別的,在名為cname的頭文件中定義的名字從屬于命名空間std,而定義在名為.h的頭文件則不是。
范圍for(declaration:expression)遍歷
declaration負責定義一個變量,expression則表示一個對象,每次迭代,declaration部分的變量會被初始化為expression部分的下一個元素值。

用這個方式遍歷a。
如果想改變范圍for遍歷的字符,必須把循環(huán)變量定義成引用類型(實際上是把這個變量依次綁定在序列的每個元素上),使用這個引用我們就能改變他綁定的字符。

如果我們想只處理一部分字符,有兩種方法可以實現,一種是使用下標,另一種我們不久就會講到。
下標運算符[],接受的參數為size_type類型,同時從下標0開始。及如果我們想找到a串的第一個字符我們就輸入a[0]。
我們可以使用普通for來遍歷下標從而實現一部分的訪問。

一些比較簡單的內容我就沒有在這里提及了。。如果有興趣大家可以自行嘗試。