C ++比较2个字符串

时间:2019-06-28 07:50:54

标签: c++ string-matching

我有以下代码:

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开头的情况下,我很有趣。
示例:
字符串a =“ abcdefghi”
字符串b =“ abcde”
该函数将返回0。我想知道此函数是否有返回1的机会;在这种情况下。

1 个答案:

答案 0 :(得分:2)

共有两种情况:-

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

    string a="abcdefghi"
    string b="abcde"
    
  2. 在您的示例中,当我们到达索引5时,结果将是 未定义,表示b[5]可能包含其 ASCII 的垃圾值 值大于a[i]。否则结果可能相反。