STL string詳細用法

2021-09-24 03:32:56 字數 3230 閱讀 7171

需要新增標頭檔案"string

string和string.h是不一樣的標頭檔案

string str1;

string str2=

"abcd"

;

1

通過下標訪問

如果要讀入輸出整個字串只能用cin和cout

可以用c_str將string型資料轉化成字元陣列輸出

string str=

"abcd"

;printf

("%s\n"

,str.

c_str()

);

2

通過迭代器訪問

string ::iterator it;得到迭代器it

#include

#include

using

namespace std;

intmain()

}

string和vector一樣是可以對迭代器直接進行加減某個數字的,如 str.begin()+3是可行的

3string的函式有很多,但是有且並不常用。

(1)operator +=

這就是string的加法,可將兩個string直接拼起來

#include

#include

using

namespace std;

intmain()

/*結果是:

123abc

123abc

*/

(2)comqare operator

兩個string型別可直接進行==,!=,<=,>=,<,>按字典序進行比較

#include

#include

using

namespace std;

intmain()

/*結果

ok1ok2

ok3*/

(3)length() size()

length()返回長度,即存放字元數時間複雜度 o(1)

size()和length()基本相同

#include

#include

using

namespace std;

intmain()

/*6 6

*/

(4)insert()

string的insert()函式有很多寫法,時間複雜度為o(n)

1.insert(pos,string)在pos處插入string

#include

#include

using

namespace std;

intmain()

/*abcopqxyz

*/

2.insert(it1,it2,it3)

it1為預插入位置,it2,it3為待插字串的首尾迭代器,[it2,it3)為插入的字串

#include

#include

using

namespace std;

intmain()

/*abcyz

*/

2.刪除乙個區間的所有元素

str.erease(first,last),即刪除[first,last)

#include

#include

using

namespace std;

intmain()

/*axyz

*/

str.erase(pos,length),pos為刪除起始位置,length為刪除字元個數

#include

#include

using

namespace std;

intmain()

/*axyz

*/

(6)clear()

clear()用於清空string的資料,時間複雜度為o(1)

#include

#include

using

namespace std;

intmain()

/*'\n'str1為空所以不輸出直接換行

0*/

(7)substr()

substr(pos,len),返回乙個從pos開始長度為len的字串,時間複雜度為o(len)

#include

#include

using

namespace std;

intmain()

/*how

areyou

*/

(8)string::nops

string::npos為乙個常數,本身值為-1,但由於是無符號整型(unsigned_int),所以也可以被認為是unsigned_int的最大值,string::npos是find函式(下面會說到)失配的返回值,所以可以認為string::npos的值是-1或者是4294967295

(9)find()

str.find(str2),當str2是str1的字串時,返回str1中第一次出現的位置,如果沒有則返回string::npos

str1.find(str2,pos),從第pos位開始匹配返回值一樣

時間複雜度為o(nm),nm分別是兩個字串的長度

#include

#include

using

namespace std;

intmain()

/*1*/

(10)replace

str.place(pos,len,str2),將str的pos位開始替換長度為len的str2

str.replace(it1,it2,str2),將str裡面[it1,it2)替換為str2

時間複雜度為o(str.length())

#include

#include

using

namespace std;

intmain()

/*abcdefghigk

**cdefghigk

*/

詳細解說STL string

詳細解說stl string 前言 string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花繚亂的string find 函式 1.3 string insert,replace,erase 2 string 和 c風格字串 3 string 和 charac...

STL string用法總結

參考自 1 string物件的定義和初始化以及讀寫 string s1 預設建構函式,s1為空串 string s2 s1 將s2初始化為s1的乙個副本 string s3 valuee 將s3初始化乙個字串面值副本 string s4 n,c 將s4 初始化為字元 c 的n個副本 cin s5 讀...

STL string 常見用法詳解

定義string的方式跟基本資料型別相同,只需要在string後跟上變數名即可 string str 如果要初始化,可以直接給string型別的變數進行賦值 string str abcd 1 通過下標訪問 一般來說,可以直接像字元陣列那樣去訪問string include include usin...