C 中string npos的一些用法總結

2021-10-07 23:12:40 字數 1043 閱讀 7352

string::npos是乙個靜態成員常量,表示size_t的最大值(maximum value for size_t)。該值表示「直到字串結尾」作為返回值它通常被用作表明沒有匹配。

string::npos是這樣定義的:

static const size_type npos = -1;
因為string::size_type描述的是size,故需為無符號整數型類別。因為預設配置為size_t作為size_type,於是-1被轉換為無符號整數型別,npos也就成為了該類別的最大無符號值。不過實際值還是取決於size_type的實際定義型別,即無符號整型(unsigned int)的-1與無符號長整型(unsigned long)的-1是不同的。

如果對 -1表示size_t的最大值有疑問可以採用如下**驗證:

配合string::find()函式使用

string::find()函式:是乙個字元或字串查詢函式,該函式有唯一的返回型別,即string::size_type,即乙個無符號整形型別,可能是整數,也可能是長整數。如果查詢成功,返回按照查詢規則找到的第乙個字元或者子串的位置;如果查詢失敗,返回string::npos,即-1(當然列印出的結果不是-1,而是乙個很大的數值,那是因為它是無符號的)。

舉個例子

#include #include #include std::string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");

void result(const char* p)

else}

int main()

參考:

string npos的一些說明

string npos的一些說明 static const size t npos 1 表示 size t 的最大值 maximum value for size t 如果對 1表示size t的最大值有疑問可以採用如下 驗證 include include include using namesp...

string npos的一些說明

一 定義 std string npos的定義 static const size t npos 1 表示 size t 的最大值 maximum value for size t 如果對 1 表示size t的最大值有疑問可以採用如下 驗證 include include include usin...

c 中 try catch 的一些

習慣了在 js 中寫 try catch 語句,所以在c 中瞎寫。杯具。我對c 的了解太少了。1.在c 中,很多錯誤是try catch 捕獲不到的,比如空指標訪問,野指標訪問等,程式都直接崩潰,不會讓你捕獲的。所以,很遺憾,我慣用try catch,並沒有達到預期。2.絕大多數 windows a...