读书人

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

发布时间: 2012-02-16 21:30:36 作者: rapoo

关于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;
}

看看是多少

读书人网 >C++

热点推荐