在c語言中,一般使用字元陣列char str來存放字串,但是使用字元陣列有時會顯得麻煩,c++在stl中加入了string型別,對字串常用的需求功能進行了封裝,使得操作起來更方便,且不易出錯。
如果需要使用string ,需要新增string標頭檔案,即#include(注:string.h和string是不一樣得標頭檔案)
一、string定義
string str
賦值:string str=「abcd」
二、string中內容的訪問
(1)通過下標訪問
#include#include#include
using
namespace
std;
intmain()
printf("\n
");return0;
}
(2)通過迭代器訪問
當使用insert()和erase()時,需要用迭代器為引數
定義:
string::iterator it;
訪問:
#include#include#include
using
namespace
std;
intmain()
printf("\n
");return0;
}
輸出:abcde
三、string常用函式
(1)operator+=
這是string的加法,可以將兩個string直接拼接起來
#include#include#include
#include
#include
using
namespace
std;
intmain()
輸出:abcdexuy
(2)compare operator
兩個string型別可以直接使用==,!=,<,<=,>,>=比較大小,比較規則是字典序
#include#include#include
#include
#include
using
namespace
std;
intmain()
else
if(str1>str2)
else
//printf("\n");
return0;
}
輸出:str1(3)length() / size()
返回string的長度
#include#include#include
#include
#include
using
namespace
std;
intmain()
輸出:5
(4)insert()
1. insert(pos,string) 在pos位置插入string字串
2. insert(it,t2,t3) it為原字串的欲插入位置,it2和it3為待插入字串的首位迭代器,用來表示串[it2,it3)將被插入在it的位置上
(5)erase()
1.刪除單個元素
str.erase(it)用於刪除單個元素,it為需要刪除的元素的迭代器
2.刪除乙個區間內的所有元素
(6)clear()
clear()用以清空string中的資料
(7)substr()
substr(pos,len)返回從pos號位開始,長度為len的子串
(8)string::npos
是乙個常數,值為-1
(9)find()
str.find(str2),當str2是str子串時,返回其在str中第一次出現的位置,如果str2不是str的子串,那麼返回string:npos
str.find(str2,pos) , 從str的pos號位開始匹配str2,返回值與上相同
(10)replace()
str.replace(pos,len,str2) 把str從pos號位開始,長度位len的子串替換為str2
str.replace(it1,it2,it3) 把str的迭代器[it1,it2)範圍的子串替換為str2
C 標準模板庫(STL)之vector
vector即長度可變的陣列 標頭檔案宣告 include using namespace std 1.定義 vector int v vectorint age 兩個 之間需加空格,不然會被誤以為是移位操作 vector int vi 100 vector陣列,vi 0 vi 99 每乙個都是乙個...
C 標準模板庫(STL)之 vector
一 vector的常見用法詳解 1.vector的定義 標頭檔案 include 單獨定義乙個vector vectorname 注 如果typename也是乙個stl容器,定義的時候要記得在 符號之間加上空格,因為一些使用c 11之前標準的編譯器會把它視為移位操作,導致編譯錯誤。如果typenam...
C 標準模板庫(STL)之Stack
stack 棧,乙個後進先出的容器。1.1 stack的定義 加上標頭檔案 include和using namespace std stacksk 1.2 stack容器元素的訪問 stack是一種操作受限制的線性表,只能通過top 來訪問棧頂元素。include include using nam...