c++ string compare函数

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:41   2377   0

c++ 标准库中的string,比较字符串函数compare:

  1. 比较的是2个字符串的码表值(不知道中文是怎么比较的,换一种编码是不是结果就不一样了);
  2. 比较的是2个字符串中第1个不同字符的码表值,也就是说,只要比较完第1个不同的字符,后面的字符就不再比较了(我以前一直以为是把整个字符串的码表值全部加起来再比较);

例1:

str1 = "ST_FR_10";
str2 = "ST_FR_11";

int nRet = str1.compare(str2); //nRet = -1;

结果:nRet = -1;

原因:2个字符串只有最后1个字符不一样,而0在字符码表中的值比1要小,即str1 < str2,compare返回-1;

例2:

str1 = "ST_FS_10";
str2 = "ST_FR_11";

int nRet = str1.compare(str2); //nRet = 1;

结果:nRet = 1;

原因:比较到第5个字符时,发现不一样,而S在字符码表中的值比R要大,即str1 > str2,compare返回1;

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP