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 提供了非常豐...