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...