string

字符串:初始化

    string s;
    string s1 = "lixiaojie";
    string s2(s1);
    string s3 = s1;//等價於s3(s1)
    string s4(5, 'c');
    string &s5 = s1;

    cout << "length="<<s1.length()<<"   size="<<s1.size() << endl;//length=9 size = 9

結果:

解釋:=:拷貝初始化(copy initialization),編譯器把等號歐策的初始值拷貝到新建的對象中去,如果不適用等號,則執行的是直接初始化(direct initialization)

string 對象上的操作
cin>>s;//讀取字符串,遇到空格結束
cout<<s;
string w;
while(cin>>w){...}//讀取未知數量的string對象,可以用:
getline(cin , s);//可以讀取一整行字符,包括空格//使用getline讀取一整行
s.empty();//判斷是否爲空
s.size();//返回string對象中字符的個數
s1==s2;//比較,對大小寫敏感 類似於> >= < <= !=
s1+=s2;//字符串拼接

range for

for(auto c: s){cout<<c};//類似於java裏的增強for啊
for(auto &c : s){c = 'd'};//通過引用改變s的內容

訪問string對象中的單個字符
方法1:使用下標 s[0]~s[s.size()]
方法2:使用迭代器

note:

  1. size()函數的返回值是size_type類型:是一個無符號整型,當n爲負數時,size()小於n爲true,因爲此時n會自動轉型爲一個特別大的無符號數。因此存在size時,就不要用int了

  2. string對象相加:

s1 = s1+"lixiai";//正確,字面值lixiai會自動轉換成string對象
        s2 = "ldj"+"d";//錯誤,兩個運算對象都不是string
        s3 =  s1+"lixiai"+","//正確
        s4 =  "lixiai"+","+s1;//錯誤

3.字符串字面值並不是標準類型string對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章