程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++ string類和字符串的訪問和拼接操作

C++ string類和字符串的訪問和拼接操作

編輯:關於C++

C++ 增強了對字符串的支持,除了可以使用c中的字符串,還可以使用內置的數據類型string,string類處理字符串會翻遍很多,完全可以代替C語言中的char 數組和char 指針。

使用sting類需要包含頭文件< sting >, 下面我們就來介紹怎麼使用。

string 的幾種用法:

#include 
#include 

using namespace std;

void main(){

    string s1;
    string s2 = "c plus plus";
    string s3 = s2;
    string s4(5, 's');

    cout << s1 << s2 << s3 << s4 << endl;

    system("pause");


}

輸出結果:

c plus plusc plus plussssss
請按任意鍵繼續. . .

上面的幾行代碼介紹了 幾種定義string 類型變量的方法,變量s1只是定義但是沒有初始化,編譯器會將默認的值附給s1,默認值是”“(空字符串)。
變量s2再定義的同時被初始化為”c plus plus ”與C語言中的char 字符串不同,string類型的變量結尾沒有
‘\0’,string 類型的本質是一個個string類,而我們定義的變量則是一個個的string類的對象,變量s3在定義的時候直接用s2進行初始化,因此s3的內容也是‘c plus plus’。變量s4被初始化為由5個’s’字符串組成的字符串,也就是’sssss‘。


與C語言中的字符串不同,當我們需要知道字符串長度時,可以調用string類提供的length()函數。如下所示:

string s = "c plus plus";
int len = s.length();
cout<

編譯運行的結果:

11

這裡,變量 s 也是 string 類的對象,length() 是它的成員函數。由於 string 變量的末尾沒有 ‘\0’ 字符,所以 length() 返回的是字符串的真實長度,而不是長度 +1。


轉換為 char 數組字符串

C++雖然提供了string類來替代C語言中的char 數組形式的字符串,但是有時候編程中必須要使用C風格的字符串,為此,string類提供了一個轉換的函數c_str();函數能夠將 string 變量轉換為一個 const 字符串數組的形式,並將指向該數組的指針返回。請看下面的代碼:

string filename = "input.txt";
ifstream in;
in.open(filename.c_str());

為了使用文件打開函數 open(),必須將 string 類型的變量轉換為字符串數組。

#ifndef _ITERATOR_DEBUG_LEVEL
#define _ITERATOR_DEBUG_LEVEL 0
#else
#undef _ITERATOR_DEBUG_LEVEL
#define _ITERATOR_DEBUG_LEVEL 0
#endif

#include 
#include 

//string字符串->c字符串轉換
void main()
{
    //string -> char*
    string s1 = "far away";
    const char* c = s1.c_str();
    printf("%s\n",c);

    //
    string s2 = c;

    //string->char[]
    //從string中賦值字符到char[]
    char arr[50] = {0};
    s1.copy(arr,4,0);

    cout << arr << endl;

    system("pause");
}

編譯輸出結果:

far away
far
請按任意鍵繼續. . .

string 字符串的輸入輸出

string類重載了輸入輸出的運算符,用“>>”進行輸入,用”<<”進行輸出,請看下面代碼:

#include 
#include 
using namespace std;
int main(){
    string s;
    cin >> s;  //輸入字符串
    cout << s << endl;  //輸出字符串

    system("pause");
    return 0;
}

運行結果:

c plus
c
請按任意鍵繼續. . .

雖然我們輸入了兩個由空格隔開的”c plus’,但是只輸出了一個,這是因為輸入的運算符“>>”默認會忽略空格,遇到空格就認為輸入結束,所以最後輸入的plus沒有被存儲到變量裡面。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved