string 常用函式

2021-09-30 20:16:31 字數 2355 閱讀 9522

string的一常用函式,待補充

string擷取、替換、查詢子串函式

擷取子串

s.substr(pos, n)    擷取s中從pos開始(包括0)的n個字元的子串,並返回

s.substr(pos)       擷取s中從從pos開始(包括0)到末尾的所有字元的子串,並返回

替換子串

s.replace(pos, n, s1)    用s1替換s中從pos開始(包括0)的n個字元的子串

查詢子串

s.find(s1)         查詢s中第一次出現s1的位置,並返回(包括0)

s.find(s1,pos)    從pos開始查詢s中第一次出現s1的位置,並返回(包括0)

s.rfind(s1)        查詢s中最後次出現s1的位置,並返回(包括0)

s.find_first_of(s1)     查詢在s1中任意乙個字元在s中第一次出現的位置,並返回(包括0)

s.find_last_of(s1)       查詢在s1中任意乙個字元在s中最後一次出現的位置,並返回(包括0)

s.fin_first_not_of(s1)         查詢s中第乙個不屬於s1中的字元的位置,並返回(包括0)

s.fin_last_not_of(s1)         查詢s中最後乙個不屬於s1中的字元的位置,並返回(包括0)

string erase

erase函式的原型如下:

(1)string& erase ( size_t pos = 0, size_t n = npos );

(2)iterator erase ( iterator position );

(3)iterator erase ( iterator first, iterator last );

也就是說有三種用法:

(1)erase(pos,n); 刪除從pos開始的n個字元,比如erase(0,1)就是刪除第乙個字元

(2)erase(position);刪除position處的乙個字元(position是個string型別的迭代器)

(3)erase(first,last);刪除從first到last之間的字元(first和last都是迭代器)

string find 找不到時的返回值

之前好像在**見到過這個問題,時間有點久,想不起來了,今天寫字串又碰到這個問題,書上給出的定義是當string.find()沒有找到時返回的是乙個很大的值,網上有人說是-1,兩種說法都對,因為整數在計算機中是按照補碼形式存放的,乙個高位的整數在少一位的整數表示時如果高位的第二位是1,那麼少一位的表示下就是負數,如果高位整數的第二位包括第二位之後全是1,那麼在少一位的表示下就是-1。string.find()返回的那個很大的數是2的32次方,而在用4個位元組表示的int,long整形,最多只能表示到2的31次方,2的32次方減一儲存的後32位的值和-1的補碼完全相同:11111111 11111111 11111111 11111111;如果賦值給int或者long型別的變數自然就是-1。

找不到返回std::string::npos

判斷返回值的時候最好不要用-1 ,用std::string::npos

string類的插入函式

string &insert(int p0, const char *s);

string &insert(int p0, const char s, int n);

string &insert(int p0,const string &s);

string &insert(int p0,const string &s, int pos, int n);

//前4個函式在p0位置插入字串s中pos開始的前n個字元

string &insert(int p0, int n, char c);//此函式在p0處插入n個字元c

iterator insert(iterator it, char c);//在it處插入字元c,返回插入後迭代器的位置

void insert(iterator it, const_iterator first, const_iterator last);//在it處插入[first,last)之間的字元

void insert(iterator it, int n, char c);//在it處插入n個字元c

string compare

.compare 方法和 strcmp並不相同, 它比較的是 std::string size()大小裡的所有位元組.在size() 長度範圍裡, 如果有』\0』字元, 一樣進行比較, 所有在不知道 std::string裡是否儲存純字串時, 最好先轉換為 const char (呼叫c_str()), 再呼叫 strcmp比較. 這個坑還是很嚇人的.

compare函式在》時返回1,《時返回-1,==時返回0

python 常用string函式

author skate time 2014 10 13 python 常用string函式 字串中字元大小寫的變換 1.str.lower 小寫 skate lower skate 2.str.upper 大寫 skate upper skate 3.str.swapcase 大小寫互換 skat...

string型別常用函式

乙個字串就是乙個string型別資料,此型別變數我們可以把它看作乙個唯讀陣列,其元素是char變數,在這裡我們來說下string型別的常用命令。1 tochararray 將此例項中的字元複製到 unicode 字元陣列。其示例是 char ch 2 tolower 返回此字串轉換為小寫形式的副本。...

string中常用的函式

string中常用的函式 發現在string在處理這符串是很好用,就找了一篇文章放在這裡了.等,正式這些操作符,對字串操作非常方便 include include using namespace std int main 5 find函式 由於查詢是使用最為頻繁的功能之一,string 提供了非常豐...