c++中s.find(' ')==4294967295后面的数字怎么理解???? 请尽快回答,感激!!!!!

我是想问:这个数字有什么用?????代表什么含义??... 我是想问 :这个数字有什么用?????代表什么含义?? 展开
 我来答
弥泉6D
2010-12-12 · TA获得超过344个赞
知道小有建树答主
回答量:253
采纳率:0%
帮助的人:207万
展开全部
采用find()方法可以查找字符串中第一个字符'或子串,如果查到则返回下标值
从零计数,如果找不到返回4294967295
string::find的返回值为string::size_type类型,其值为string::npos。
下面来看MSDN对size_type的定义:
basic_string::size_type:An unsigned integer type that can represent the number of elements and indices in a string.
可见size_type实际上就是一个无符号整型(unsigned int)
因为 string::size_type (由字符串配置器 allocator 定义) 描述的是 size,故需为无符号整数型别。因为缺省配置器以型别 size_t 作为 size_type,于是 -1 被转换为无符号整数型别,npos 也就成了该型别的最大无符号值(4294967295)

参考资料: http://blog.csdn.net/kinghui_1986/archive/2010/05/06/5563874.aspx

河蟹和谐河蟹
2010-12-12 · TA获得超过1156个赞
知道小有建树答主
回答量:1028
采纳率:0%
帮助的人:785万
展开全部
4294967295就是无符号位的整形最大值,也就是有符号位整形-1,也就是s.find(" ") == -1,结果就显而易见了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
D0ckLng
2010-12-12 · TA获得超过349个赞
知道答主
回答量:156
采纳率:0%
帮助的人:0
展开全部
4294967295这个是DWORD的0xFFFFFFFF 很多地方作为一个不合法的返回值定义。像是套接字函数的返回。有些地方表示无穷大。有相关的宏定义INVALID_HANDLE_VALUE ,SOCKET_ERROR.INFINITE 我肯定拼写错误了.不过就是这个意思.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BlueWanderer
2017-10-15 · TA获得超过9209个赞
知道大有可为答主
回答量:5673
采纳率:83%
帮助的人:1983万
展开全部
-1,也就是std::npos,表示没找到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
骑车到处逛
2010-12-12 · TA获得超过160个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:122万
展开全部
找不到会返回一个数,就是这个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式