首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于string的length(),该怎么解决

2012-02-16 
关于string的length()#include iostream#include stringusingnamespacestdintmain(){stringss( abcd

关于string的length()
#include <iostream>
#include <string>
using   namespace   std;
int   main()
{
string   ss( "abcdefg ");
cout < <ss.length();//输出7
cout < <boolalpha < <static_cast <bool> (ss.length() <-1);//输出true,这是为什么??
int   len=ss.length();
cout < <boolalpha < <static_cast <bool> (len <-1);//这时又正确的输出false了,why?
return   0;
}

[解决办法]
length 返回 size_type , 通常都是 unsigned 类型的, 比较时 -1 被转为 unsigned 类型, 当然不会有啥值比它更大, 编译器应该会有警告的三 ...
[解决办法]
#include <iostream>
#include <string>
using namespace std;
int main()
{
string ss( "abcdefg ");
cout < <ss.length();//输出7
cout < <boolalpha < <static_cast <bool> ((int)ss.length() <-1);//输出true,这是为什么??
int len=ss.length();
cout < <boolalpha < <static_cast <bool> (len <-1);//这时又正确的输出false了,why?
system( "pause ");
return 0;
}

看看是多少

热点排行