string::npos是一个长度参数,表示直到字符串的结束。
string str="asdfabcjk";
类型 idx = str.find("abc");
那么这个idx的类型应该是什么呢?
idx类型被定义为int 或 unsigned int
都是不对的,它必须定义为 string::size_type
。因为 string::size_type
(由字符串配置器 allocator 定义) 描述的是size
,故需为无符号整数型别。因为缺省配置器以型别 size_t
作为 size_type
。所以idx可以定义为size_t
。
如果只要判断一个字符串中是否存在需要找的字符串可以使用:
if(str.find("abc") != string::npos) // 找到
若找到后需要提取该字段,就需要记录找到的位置了。
size_t pos = str.find("abc");
获取到pos的位置后,再做处理。