我們使用字串時經常要對字串中單個字元進行處理,比如檢測乙個string物件是否包含空白,或者把string物件中的字母大寫改為小寫,檢視某個特定字元是否出現,判斷字串是否為數字等等。
這類處理的關鍵是要獲取字元本身。有時需要處理string物件中的每乙個字元,另外一些時候則只需處理某個特定的字元,還有些時候遇到某個條件處理就要停下來。
在cctype標頭檔案中定義了一組標準庫函式處理字串的工作。
cctype標頭檔案中的函式
isalnum(c) 當c是字母或數字時為真
isalpha(c) 當c是字母時為真
iscntrl(c) 當c是控制字元時為真
isdigit(c) 當c是數字時為真
isgraph(c) 當c不是空格但可列印時為真
islower(c) 當c是小寫字母時為真
isprint(c) 當c是可列印字元時為真(即c是空格或c具有可視形式)
ispunct(c) 當c是標點符號時為真(即c不是控制字元、數字、字母、可列印空白中的一種)
isspace(c) 當c是空白時為真(即c是空格、橫向製表符、縱向製表符、回車符、換行符、進紙符中的一種)
isupper(c) 當c是大寫字母時為真
isxdigit(c) 當c是十六進製制數字時為真
tolower(c) 如果c是大寫字母,輸出對應的小寫字母,否則原樣輸出c
toupper(c) 如果c是小寫字母,輸出對應的大寫字母,否則原樣輸出c
處理每個字元,可以使用基於範圍的for語句,c++11新標準 (vs2010編譯器不支援,呵呵,我用不了)
for(declaration:expression)
statement
example:
string s("hello, world");
for(auto c:s)
cout<
**:// string.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include #include #include using namespace std;
int _tmain(int argc, _tchar* argv)
{ //初始化字串,初始化分為直接初始化()和拷貝初始化「=」
string str("hello, wo shi guo jia zhu xi de ****12134556, xia wo yi tiao!!!");
string::size_type len=str.size();//長度
cout<<"字串為:"《下標操作符返回的是該位置字元的引用。at()在使用時會檢查下標是否有效,超出範圍會丟擲。at()返回的是該位置字元的拷貝值。
C 刪除字串中的單個字元
刪除 vt擦掉。抹去 擦掉 清除 陣列 引數的英文要清除的 陣列變數的名稱。iterator erase iterator pos 刪除pos指向的字元,返回指向下乙個字元的迭代器 iterator erase iterator start,iterator end 刪除從start到end的所有字...
匹配單個字元
在上一小節中,了解到通過re模組能夠完成使用正規表示式來匹配字串 本小節,將要講解正規表示式的單字元匹配 字元功能 匹配任意1個字元 除了 n 匹配 中列舉的字元 d匹配數字,即0 9 d匹配非數字,即不是數字 s匹配空白,即 空格,tab鍵 s匹配非空白 w匹配單詞字元,即a z a z 0 9 ...
左旋字串k個字元
常用方法左旋字串 include include include pragma warning disable 4996 void left move char str,int len,int steps str i 1 tmp int main 為了使程式簡便,將字串進行拷貝並與字串相連線,組成乙...