需要新增標頭檔案"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...