新人淺談C++ string類


C++可以說時C語言的拓展,他兼容了C語言的很多優點,同時又有新的特性。

下面我們就來說一下C++里面的string類,string類是一個對字符串操作的類,在C語言中,定義字符串的方式一般為定義字符數組或指針。而在C++中,設計者將其封裝到string這個類里面。方便進行一些操作。

下面我們以代碼為例來進行string類型的一些常規操作進行解釋說明

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 
 5 using namespace std;
 6 
 7 int main(){
 8 
 9     string name1 = "xxxx";
10     string name2 = "xxxxxxxxx";
11     cout << "String name1 " << name1 << endl;
12     cout << "String name2 " << name2 << endl;
13     cout << "Size of name1 " << name1.size() << endl;
14     cout << "Size of name2 " << name2.size() << endl;
15 
16     cout << "Now we will enum the name1" << endl;
17     for(int index = 0; index != name1.length(); index++){
18 
19         cout << name1[index] << endl;
20     }
21 
22     if(name1 <= name2){
23 
24         cout << "name1 is less than name2" << endl;
25     }
26 
27     string new_str = name1 + name2 + "bbbb";
28 
29     cout << "name1 plus name2 plus bbbb equal " << new_str << endl;
30 
31 
32 }

首先,string這個類,是包含在iostream頭文件的std命名空間里。下面我們針對代碼中所體現的進行解釋說明。

一、定義字符串:

  與定義其他類型變量一樣,string name1 就是定義了一個字符串變量name1。同時可以對其進行初始化操作

  與其他類型的變量一樣,string name1 = “aaaaa" ; string name1("aaaa") 均可對字符串變量進行初始化操作

二、輸入輸出字符串:

  string類內部已經對操作符進行了重載,可以使用 cin>> , cout<< 進行流輸入和輸出。

三、獲取字符串長度:

  對於定義好的 string name1 = ”aaaaa“來說

  name1.length()可以獲取到字符串的長度,這一點和Java很相類似,畢竟Java也叫C+-,他就是來源於C++

  name1.size()同樣可以獲取字符串的長度

四、字符串的比較:

  string name1 = ”aaaaa“

  string name2 = ”xxxxxxx"

  string name3  = "aaaaaaaaa"

  字符串可以進行 “==” ,“<",">",">=" "<="運算,類型內部已對運算符進行了重載,這一點可以類比於Python中的魔法方法__add__,也是相當於對運算符進行重載。

  值得注意的是,字符串的比較是相當於父與子的比較,name1可以看作name3的子串 所以name1 <= name3。不同的字符串是無法進行大小的比較。但是可以通過”==“判斷了兩個字符串是否相等

五、字符串的拼接和索引:

  這一個特性和python極為相似

  python可以進行字符串的拼接和索引,同樣C++也可以

  string name1 = ”aaaaa“來說

  string new_str = name1 + "bbbb"

  那么new_str = "aaaaabbbb"

  如果想知道name1的第一個字符,可以采取name1[0]的方法進行索引,注意,是從零開始索引。

六、對string類型中的單個字符進行操作:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM