字串中單個字元的用法

2021-07-01 23:12:39 字數 1400 閱讀 6873

我們使用字串時經常要對字串中單個字元進行處理,比如檢測乙個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 為了使程式簡便,將字串進行拷貝並與字串相連線,組成乙...