用字元陣列來存放字串並不是最理想和最安全的方法。
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類物件,可以不用這些函式,而直接用簡單的運算子。
1) 字串複製用賦值號
string1=string2;
其作用與「strcpy(string1,string2);」相同。
2) 字串連線用加號
string string1=″c++″; //定義string1並賦初值
string string2=″language″;//定義string2並賦初值
string1=string1 + string2;//連線string1和string2
連線後string1為″c++ language″。
3) 字串比較直接用關係運算子
可以直接用 ==(等於)、>(大於)、=(大於或等於)、<=(小於或等於)等關係運算子來進行字串的比較。
不僅可以用string定義字串變數,也可以用string定義字串陣列。如:
string name[5]; //定義乙個字串陣列,它包含5個字串元素
string name[5]=; //定義乙個字串陣列並初始化
此時name陣列的狀況如圖5.11所示。
圖5.11
關於字串陣列的幾點說明:
可見用字串陣列存放字串以及對字串進行處理是很方便的。
在定義字串陣列時怎樣給陣列分配儲存空間呢?實際上,編譯系統為每乙個字串變數分配4個位元組,在這個儲存單元中,並不是直接存放字串本身,而是存放字串的位址。在本例中,就是把字串″zhang″的位址存放在name[0],把字串″li″ 的位址存放在name[1],把字串″fun″的位址存放在name[2]……圖5.11只是乙個示意圖。在字串變數中存放的是字串的指標(字串的位址)。
字串處理方法
獲取字串中多個相同字元的位置index 解決方法 先遍歷astring 找到所有的abc 所在位置的index,然後通過index 將字串進行替換 nsmutablearray getrangestr nsstring text findtext nsstring findtext 獲取第一次出現的...
字串處理方法
js中三種基本資料型別,都有對應的物件型別 布林有布林物件 數字有數字物件 基本型別是乙個簡單的資料,沒有屬性 但是js中的基本資料型別可以 當做物件使用 1.當對乙個基本資料型別打點訪問屬性或方法時 js會臨時將這個資料的值封裝成乙個對應型別的物件,然後使用這個物件調屬性或方法,這個過程叫做自動裝...
C 處理字串的方法 字串類與字串變數
用字元陣列來存放字串並不是最理想和最安全的方法 c 提供了一種新的資料型別 字串型別 string型別 在使用方法上,它和char int型別一樣,可以用來定義變數,這就是字串變數 用乙個名字代表乙個字串行 實際上,string並不是c 語言本身具有的基本型別,它是在c 標準庫中宣告的乙個字串類,用...