Сравнение строк с учетом регистра в C ++ - PullRequest
0 голосов
/ 10 августа 2010

Может кто-нибудь, пожалуйста, дайте мне знать точный код C ++ чувствительной к регистру функции сравнения строки класса?

Ответы [ 4 ]

5 голосов
/ 10 августа 2010

Как насчет?

std::string str1, str2;
/* do stuff to str1 and str2 */
if (str1 == str2) { /* do something */ }

Или

if (str1.compare(str2) == 0) { /* the strings are the same */ }
4 голосов
/ 10 августа 2010
std::string str1("A new String");
std::string str2("a new STring");
if(str1.compare(str2) == 0)
    std::cout<<"Equal";     // str1("A new String") str2("A new String");
else 
    std::cout<<"unEqual";   //str1("A new String") str2("a new STring") 

compare () возвращает целое значение, а не логическое значение.Возвращаемое значение имеет следующее значение: 0 означает равенство, значение меньше нуля означает меньше, а значение больше нуля означает больше

2 голосов
/ 10 августа 2010

== перегружен для сравнения строк в C ++ AFAIK (в отличие от Java, где нужно использовать myString.equals (..))

Если вы хотите игнорировать регистр при сравнении, просто преобразуйте обе строкив верхний или нижний регистр, как описано здесь: Преобразование строки в C ++ в верхний регистр

1 голос
/ 10 августа 2010
#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string str1 ("green apple");
  string str2 ("red apple");

  if (str1.compare(str2) != 0)
    cout << str1 << " is not " << str2 << "\n";

  if (str1.compare(6,5,"apple") == 0)
    cout << "still, " << str1 << " is an apple\n";

  if (str2.compare(str2.size()-5,5,"apple") == 0)
    cout << "and " << str2 << " is also an apple\n";

  if (str1.compare(6,5,str2,4,5) == 0)
    cout << "therefore, both are apples\n";

  return 0;
}

Я получил это от http://www.cplusplus.com/reference/string/string/compare/

Надеюсь, Google работает !!

Но используйте оператор == как s1 == s2 тоже будет хорошо работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...