String的用法及例子

2021-10-01 09:22:38 字數 2889 閱讀 9510

string是c++標準庫的乙個重要的部分,主要用於字串處理。可以使用輸入輸出流方式直接進行操作,也可以通過檔案等手段進行操作。

其中使用的**多數都是來自cpp官網。

宣告和初始化方法:

想使用string首先要在標頭檔案當中加入< string >

宣告:

string s;

//宣告乙個string 物件

string ss[10]

;//宣告乙個string物件的陣列

初始化:

使用等號的初始化叫做拷貝初始化,不使用等號的初始化叫做直接初始化。

#include .h>

using namespace std;

int main()

字串處理:

substr操作:

substr沒有迭代器作為引數的操作

#include .h>

using namespace std;

int main()

如果輸入的位置超過字元的長度,會丟擲乙個out_of_range的異常

insert操作:

注意用迭代器當引數和無符號數當引數的區別

#include .h>

using namespace std;

int main()

erase操作:

用來執行刪除操作

刪除操作有三種

#include 

#include

int main()

#include 

#include

int main()

replace的使用方法

replace支援使用無符號整數尋找位置,也支援用迭代器尋找位置

#include 

#include

int main()

以上的replace操作可以用insert和erase的操作組合替換,但是replace操作更加方便。

assign操作:

assign操作在一系列容器當中都存在,比如vector等等。是乙個很基本的操作函式,string使用assign可以靈活的對其進行賦值。

#include 

#include

int main()

string的搜尋操作:

find和rfind函式:

find函式主要是查詢乙個字串是否在呼叫的字串**現過,大小寫敏感。

#include .h>

using namespace std;

int main()

rfind函式就是找最後乙個出現的匹配字串,返回的位置仍然是從前往後數的。

#include .h>

using namespace std;

int main()

std:

:cout << str <<

'\n'

;return0;

}

find_….of函式:

#include .h>

using namespace std;

int main()

std:

:cout << str1 <<

'\n'

;//在str2中找到第乙個不是消協英文本母和空格的字元

std:

:string str2

("look for non-alphabetic characters...");

std:

:size_t found2 = str2.

find_first_not_of

("abcdefghijklmnopqrstuvwxyz ");

if(found2!=std:

:string:

:npos)

return0;

}

find_last_of和find_last_not_of與first基本相同。

比較與轉換:

類似c語言的字串比較函式strcmp函式一樣,支援字串比較操作,同時也類似python、c#語言中的函式一樣,支援把數字和字串轉換。有些特性是c++11當中才有。

注意編譯器bug:

在mingw編譯器當中如果版本低於3.8,雖然支援c++11但是裡面有乙個bug,就是不支援字串和陣列的轉換!要更新mingw的版本才可以,或者直接使用g++。

compare函式:

和strcmp函式一樣,如果兩個字串相等,那麼返回0,呼叫物件大於引數返回1,小於返回-1。

在compare當中還支援部分比較,裡面有6個引數可以設定。

#include .h>

using namespace std;

int main()

由於string過載了運算子,可以直接用》,<,==來進行比較,也很方便。

string和數值轉換:

#include .h>

using namespace std;

int main()

socket例子及高階用法

使用sigalrm訊號為阻塞操作設定超時 可以處理connect和read等超時 include include include include include include include include include include define maxline 4096 typedef v...

C 中rapidxml用法及例子

c 中rapidxml用法及例子 rapidxml是乙個快速的xml庫,比tinyxml快了50 100倍。本文給出建立 讀取 寫入xml的原始碼。下面三個檔案是本段 需要的庫檔案 include rapidxml rapidxml.hpp include rapidxml rapidxml uti...

ldd命令原理及用法例子

1 首先ldd不是乙個可執行程式,而只是乙個shell指令碼 2 ldd能夠顯示可執行模組的dependency,其原理是通過設定一系列的環境變數,如下 ld trace loaded objects ld warn ld bind now ld library version ld verbose...