1. 程式人生 > >c++String類

c++String類

... getchar() 子串 ins ted 類型 num ron .com

C++ 標準庫提供了 string 類類型,支持上述所有的操作,另外還增加了其他更多的功能。我們將學習 C++ 標準庫中的這個類,現在讓我們先來看看下面這個實例:

現在您可能還無法透徹地理解這個實例,因為到目前為止我們還沒有討論類和對象。所以現在您可以只是粗略地看下這個實例,等理解了面向對象的概念之後再回頭來理解這個實例。

實例

#include <iostream> #include <string> using namespace std; int main () { string str1 = "Hello"; string str2 = "World";
string str3; int len ; // 復制 str1 到 str3 str3 = str1; cout << "str3 : " << str3 << endl; // 連接 str1 和 str2 str3 = str1 + str2; cout << "str1 + str2 : " << str3 << endl; // 連接後,str3 的總長度 len = str3.size(); cout << "str3.size() : " << len << endl;
return 0; }

當上面的代碼被編譯和執行時,它會產生下列結果:

str3 : Hello
str1 + str2 : HelloWorld
str3.size() :  10

string類提供了一系列針對字符串的操作,比如:

  • 1. append() -- 在字符串的末尾添加字符
  • 2. find() -- 在字符串中查找字符串
  • 4. insert() -- 插入字符
  • 5. length() -- 返回字符串的長度
  • 6. replace() -- 替換字符串
  • 7. substr() -- 返回某個子字符串
  • 8. ...
實例:
#include <iostream> #include <string> using namespace std; int main() { //定義一個string類對象 string http = "www.runoob.com"; //打印字符串長度 cout<<http.length()<<endl; //拼接 http.append("/C++"); cout<<http<<endl; //打印結果為:www.runoob.com/C++ //刪除 int pos = http.find("/C++"); //查找"C++"在字符串中的位置 cout<<pos<<endl; http.replace(pos, 4, ""); //從位置pos開始,之後的4個字符替換為空,即刪除 cout<<http<<endl; //找子串runoob int first = http.find_first_of("."); //從頭開始尋找字符‘.‘的位置 int last = http.find_last_of("."); //從尾開始尋找字符‘.‘的位置 cout<<http.substr(first+1, last-first-1)<<endl; //提取"runoob"子串並打印 return 0; }

C++ 中輸入的方式其實還有很多,下面來介紹一種與 C 語言中 getchar() 類似的。

cin.getline();

cin.getline() 是在輸入一段字符完成後開始讀取數據(註意,是輸入完成後,以Enter為結束標誌)

下面是一實例:輸入一串字符,編程統計其中的數字個數和英文字母個數。輸入的字符以 # 為結束標誌。

#include<iostream>
using namespace std;

#define N 100
int main()
{
    char X[N];
    cin.getline(X,N);                               //以cin.getline形式輸入
    int a=0,b=0;
    for(int i=0;i<N;i++)
    {
        if(X[i]==‘#‘)                                      //為#為結束標誌
            break;
        if(X[i]>=‘0‘&&X[i]<=‘9‘)
            a++;                                         //統計數字個數
        if((X[i]>=‘a‘&&X[i]<=‘z‘)||(X[i]>=‘A‘&&X[i]<=‘Z‘))
            b++;                                      //統計英文字母個數
    }
    cout<<a<<endl<<b<<endl;
    return 0;
}
 

c++String類