首页 > 解决方案 > C ++比较2个字符串

问题描述

我有以下代码:

int compare(string a,string b)
{
    int length=a.length();
    for(int i=0; i < length; i++)
    {
        if(a[i]<b[i])
            return 1;
        if(a[i]>b[i])
            return 0;
    }
    ....
}

当字符串 a 的长度大于字符串 b 的长度并且字符串 a 以字符串 b 开头时,我很感兴趣。
示例:
string a="abcdefghi"
string b="abcde"
该函数将返回 0。我想知道该函数是否有机会返回 1;在这种情况下。

标签: c++string-matching

解决方案


总共可能有两种情况:-

  1. 如果我们的长度为b > 0,那么我们必须确保 a[i] ASCII 值必须小于b[i]ASCII 值。

    string a="abcdefghi"
    string b="abcde"
    
  2. 在您的示例中,当我们到达 index5时,结果将是未定义的,意味着可能包含其ASCII 值大于]b[5]的垃圾值。或者结果可能适得其反。a[i


推荐阅读