c string型別的定義及方法

2022-09-18 13:33:12 字數 1695 閱讀 1968

1.c++ 有兩種風格的字串形式

c風格字串

定義及初始化

char a=

或者char a=「hello」; //c++ 編譯器會在初始化陣列時,自動把 『\0』 放在字串的末尾

輸出:cout《長度:strlrn(a);

string型別

定義及初始化:

string a=「hello」;

輸出:cout《長度:a.size();

2.string型別的字串運算和函式

在以字元陣列存放字串時,字串的運算要用字串函式,如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)字串比較直接用關係運算子

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

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

4)獲取字串的第乙個字元 獲取字串的最後乙個字元

string::const_iterator it = str1.begin();

cout << *it << endl;

cout << endl;

it = str1.end();//end是指向最後乙個字元後面的元素,而且不能輸出,所以cout << *it << endl;這樣輸出會報錯

it--;

cout << *it << endl;

cout << endl;

5)倒置串

reserve(str.begin(),str.end());

6)查詢串

//find-從指定位置起向後查詢,直到串尾

string st1("babbabab");

cout << st1.find('a') << endl; //1 預設從位置0(即第1個字元)開始查詢

cout << st1.find('a', 2) << endl; //4 在st1中,從位置2(b,包括位置2)開始,查詢a,返回首次匹配的位置

string st2("aabcbcabcbabcc");

str1 = "abc";

cout << st2.find(str1, 2) << endl;//6 從st2的位置2(b)開始匹配,返回第一次成功匹配時匹配的串(abc)的首字元在st2中的位置,失敗返回-1

7)擷取字串

str.substr(startpos,length); //從str的startpos位置擷取length長度的字串

努力成為一名改變世界的軟體工程師,不要放任自己,甘心當乙個**的搬運工

C string和int型別的轉換方法

總結一下c 中string和int的兩種轉換方法。第一種 使用c標準庫中的函式atoi 和itoa include include using namespace std int main 注意在這個方法中vs中會報告出現不安全,在配置屬性 c c 預處理器加入 crt secure no warn...

C string 特殊的引用型別

net 框架程式設計 修訂版 中有這樣一段描述 string型別直接繼承自object,這使得它成為乙個引用型別,也就是說執行緒上的堆疊上不會駐留有任何字串。譯註 注意這裡的 直接繼承 直接繼承自object的型別一定是引用型別,因為所有的值型別都繼承自system.valuetype。值得指出的是...

C string的常用方法

1 向string的後面加c string string s hello const char c out here s hello out here 2 向string的後面加c string的一部分 string s hello const char c out here s hello out...