﻿# V3122\. Uppercase \(lowercase\) string is compared with a different lowercase \(uppercase\) string\.

Анализатор обнаружил, что производится сравнение двух строк, которые имеют заведомо разный регистр символов\.

Рассмотрим пример:

```cpp
void Some(string s)
{
  if (s.ToUpper() == "abcde")
  {
    ....
  }
}
```

После того, как значение переменной 's' приводится к верхнему регистру, результат сравнивается со строкой, все символы которой в нижнем регистре\. Так как такое сравнение будет всегда ложным, фрагмент кода содержит ошибку, которая может быть исправлена следующим образом:

```cpp
void Some(string s)
{
  if (s.ToLower() == "abcde")
  {
    ....
  }
}
```

Рассмотрим еще один пример:

```cpp
void Some()
{
  string s = "abcde";
  ....
  if (s.Contains("AbCdE"))
  {
    ....
  }
}
```

Переменная 's' содержит символы только в нижнем регистре\. При этом, для данной строки производится попытка поиска ее подстроки, содержащей символы в смешанном регистре\. Очевидно, что в данном случае результатом работы метода 'Contains' всегда будет ложь\. Приведенный фрагмент кода также содержит ошибку\.