C++ string類型變量的定義
<上一節
下一節>
在C++中提供了一個型的內建數據類型string,該數據類型可以替代C語言中char數組。需要使用string數據類型時則需要在程序中包含頭文件string。string類型處理起來會比較方便,下面我們將逐一介紹該類型的功能。
例1:
從例1中我們也可以看出string類型變量可以直接通過賦值操作符“=”進行賦值。string類型變量可以用string類型變量或C風格字符串進行賦值。如s2則是用一個字符串常量進行初始化的,而s3變量則是通過s2變量進行初始化。
與C風格的字符數組不同,當我們需要知道字符串長度時,string類為我們提供了length函數。如下面例2所示,我們可以通過s變量來調用length函數,從而返回s變量的長度。因為string類型的變量末尾是沒有 ’\0’ 字符的,因此其返回值就是變量的真實長度,而不是長度+1。
例2:
例1:
例1:
#include <iostream> #include <string> using namespace std; int main() { string s1; string s2 = "string"; string s3 = s2; string s4 (10, 's'); return 0; }在本例中介紹了幾種定義string類型變量的方法,變量s1只是定義但是沒有進行初始化,系統會將默認值賦給s1,默認值是“”(空字符串)。變量s2在定義的時候就被初始化為了"string",與C風格的char型數組不同,string類型的變量結尾是沒有 ’\0’ 的,string類型的本質是一個string類,而我們定義的變量則是一個個的string類的對象。變量s3在定義的時候直接用s2進行初始化了,因此s3的內容也是"string"。變量s4初始化為10個‘s’字符組成的字符串,也即“ssssssssss”。
從例1中我們也可以看出string類型變量可以直接通過賦值操作符“=”進行賦值。string類型變量可以用string類型變量或C風格字符串進行賦值。如s2則是用一個字符串常量進行初始化的,而s3變量則是通過s2變量進行初始化。
與C風格的字符數組不同,當我們需要知道字符串長度時,string類為我們提供了length函數。如下面例2所示,我們可以通過s變量來調用length函數,從而返回s變量的長度。因為string類型的變量末尾是沒有 ’\0’ 字符的,因此其返回值就是變量的真實長度,而不是長度+1。
例2:
string s = "string"; int len = s.length();
轉換為 char 數組字符串
雖然C++提供了string類型來替代C語言中的字符數組形式的字符串,但是我們在程序設計過程中還是不可避免地會碰到需要用字符數組形式字符串的地方。為此,系統為我們提供了一個轉換函數c_str,該函數將string類型的變量轉換為一個const的字符串數組的指針。例1:
string filename = "input.txt"; ifstream in; in.open(filename.c_str());在本例中我們為了打開文件的函數open,因此必須將string類型變量轉換為字符串指針。
<上一節
下一節>