C ++ сравнивает 2 строки - PullRequest
0 голосов
/ 28 июня 2019

У меня есть следующий код:

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; в этих условиях.

1 Ответ

2 голосов
/ 28 июня 2019

Всего возможны два сценария: -

  1. если у нас длина b > 0, то мы должны убедиться, что значение a[i] ASCI I должно быть меньше b[i] ASCII value ..

    string a="abcdefghi"
    string b="abcde"
    
  2. В вашем примере, когда мы достигнем индекса 5, результат будет неопределенным, значит, b[5] может содержать значение мусора, чье ASCII значение больше a[i].или результат может быть наоборот.

...