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...