C 處理字串的方法 字串類與字串變數

2021-06-10 04:53:20 字數 2270 閱讀 9404

用字元陣列來存放字串並不是最理想和最安全的方法。

c++提供了一種新的資料型別——字串型別(string型別),在使用方法上,它和char、int型別一樣,可以用來定義變數,這就是字串變數——用乙個名字代表乙個字串行。

實際上,string並不是c++語言本身具有的基本型別,它是在c++標準庫中宣告的乙個字串類,用這種類可以定義物件。每乙個字串變數都是string類的乙個物件。

1. 定義字串變數

和其他型別變數一樣,字串變數必須先定義後使用,定義字串變數要用類名string。如

string string1;  //定義string1為字串變數

string string2=″china″; //定義string2同時對其初始化

應當注意: 要使用string類的功能時,必須在本檔案的開頭將c++標準庫中的string標頭檔案包含進來

,即應加上

#include //注意頭檔名不是string.h

2. 對字串變數的賦值

在定義了字串變數後,可以用賦值語句對它賦予乙個字串常量,如

string1=″canada″;

既可以用字串常量給字串變數賦值,也可以用乙個字串變數給另乙個字串變數賦值。如

string2=string1; //假設string2和string1均已定義為字串變數

不要求string2和string1長度相同,假如string2原來是″china″,string1原來是″canada″,賦值後string2也變成″canada″。在定義字串變數時不需指定長度,長度隨其中的字串長度而改變。

可以對字串變數中某一字元進行操作,如

string word=″then″;  //定義並初始化字串變數word

word[2]=′a′; //修改序號為2的字元,修改後word的值為″than″

3. 字串變數的輸入輸出

可以在輸入輸出語句中用字串變數名,輸入輸出字串,如

cin>> string1;  //從鍵盤輸入乙個字串給字串變數string1

cout<< string2; //將字串string2輸出

在上一節中可以看到: 在以字元陣列存放字串時,字串的運算要用字串函式,如strcat(連線)、strcmp(比較)、strcpy(複製),而對string類物件,可以不用這些函式,而直接用簡單的運算子。

字串複製用賦值號

string1=string2;

其作用與「strcpy(string1,string2);」相同。

字串連線用加號

string string1=″c++″; //定義string1並賦初值

string string2=″language″;//定義string2並賦初值

string1=string1 + string2;//連線string1和string2

連線後string1為″c++ language″。

字串比較直接用關係運算子

可以直接用 ==(等於)、>(大於)、=(大於或等於)、<=(小於或等於)等關係運算子來進行字串的比較。

使用這些運算子比使用5.5.5節中介紹的字串函式直觀而方便。

不僅可以用string定義字串變數,也可以用string定義字串陣列。如

string name[5]; //定義乙個字串陣列,它包含5個字串元素

string name[5]=;

//定義乙個字串陣列並初始化

此時name陣列的狀況如圖5.11所示。

圖5.11

關於字串陣列的幾點說明:

在乙個字串陣列中包含若干個(現為5個)元素,每個元素相當於乙個字串變數。

並不要求每個字串元素具有相同的長度,即使對同乙個元素而言,它的長度也是可以變化的,當向某乙個元素重新賦值,其長度就可能發生變化。

在字串陣列的每乙個元素中存放乙個字串,而不是乙個字元,這是字串陣列與字元陣列的區別。如果用字元陣列存放字串,乙個元素只能存放乙個字元,用乙個一維字元陣列存放乙個字串。

每乙個字串元素中只包含字串本身的字元而不包括′\0′。

可見用字串陣列存放字串以及對字串進行處理是很方便的。

在定義字串陣列時怎樣給陣列分配儲存空間呢?實際上,編譯系統為每乙個字串變數分配4個位元組,在這個儲存單元中,並不是直接存放字串本身,而是存放字串的位址。在本例中,就是把字串″zhang″的位址存放在name[0],把字串″li″ 的位址存放在name[1],把字串″fun″的位址存放在name[2]……圖5.11只是乙個示意圖。在字串變數中存放的是字串的指標(字串的位址)。

字串,QT字串類,c 字串類之間的轉換

1.std string轉換成qstring string std str abc qstring q str qstring fromstdstring std str 2.qstring轉換成std string qstring q str abc string q str.tostdstrin...

C語言,字串的處理,陣列字串,指標字串。

c語言菜鳥教程 void memset void str,int c,size t n 複製字元 c 乙個無符號字元 到引數 str 所指向的字串的前 n 個字元。size t strlen const char str 計算字串 str 的長度,直到空結束字元,但不包括空結束字元。char str...

字串處理方法

獲取字串中多個相同字元的位置index 解決方法 先遍歷astring 找到所有的abc 所在位置的index,然後通過index 將字串進行替換 nsmutablearray getrangestr nsstring text findtext nsstring findtext 獲取第一次出現的...