標籤:讀取字串 prim str 數組 空間 第三章 bool abc 結果
第三章 字串、向量和數組
命名空間
using std::cin;
using namespace std;
string s4(3, ‘c‘); //s4的值是"ccc"
使用getline讀取一整行
string line;
getline(cin, line);
若成功讀取一行,getline函數返回true(讀到空行也返回true,因為成功讀到一個‘\n‘;此時line為空白字串),讀取失敗返回false。
getline讀取遇到分行符號為止,分行符號也被讀進來了,但在把字串存入string對象時,分行符號沒有存進去。
string對象上的操作
os<<s 將s寫到輸出資料流os,返回os
is>>s 從輸入資料流is中讀取字串賦給s,返回is
getline(is, s) 從輸入資料流is中讀取一行賦給s
s.empty()
s.size() s.length() 二者沒有區別
s[i]
+
=、==、!=
<、<=、>、>=
string的size函數傳回型別是size_type類型,它是一個不帶正負號的整數。
string s("abc"); //s.size()值為3,注意它是無符號數
bool b1 = s.size() < -1; //b1的值是true;因為s.size()是無符號數,混用帶符號數與無符號數時,帶符號數會自動轉換成一個無符號數,此處-1將變成一個很大的正整數(轉換的方式在第2章已討論)
int len = s.size(); //無符號數s.size()先轉換成一個帶符號數len
bool b2 = len < -1; //b2的值是false;因為len是一個帶符號數,與-1比較時不存在帶符號數與無符號數混用而發生意想不到的自動轉換問題
字串的字典序大小比較
字串大小的比較結果等於第一對相異字元的比較結果
"abc" < "ac"
若對應位置字元全都相同,則長度較小的字串小
"abc" < "abcd"
否則兩字串相等
Tips for C++ Primer Chapter 3