C++ 如何解决string类型无法比较大小的问题

众所周知,string类型是无法比较大小的。测试发现,string类型比较大小时,似乎只是比较了数字的最高位。如下图:C++ 如何解决string类型无法比较大小的问题_第1张图片


解决方法其实并不难,只需将string转化为整形再比较即可。

string转int其实有两种方法:

1) 在C标准库里面,使用atoi:
#include
#include
std::string text = "152";
int number = std::atoi( text.c_str() );

2) 使用stringstream:(stringstream 可以用于各种数据类型之间的转换)
#include
#include
std::string text = "152";
int number;
std::stringstream ss;
ss << text;//可以是其他数据类型
ss >> number; //string -> int


下面是实际代码的演示:方法一:

C++ 如何解决string类型无法比较大小的问题_第2张图片



方法二:

C++ 如何解决string类型无法比较大小的问题_第3张图片

希望能对大家有所帮助~

你可能感兴趣的:(string,C++)