Форум: Форум C++Разное
Новые темы: 00
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не работает сравнение строк strcmp
 
 автор: Quies   (26.12.2012 в 03:56)   письмо автору
 
 

Здравствуйте. Не могу понять в чём ошибка.
Если сравнить две строки на русском из кода, всё работает. А если одна строка в коде а вторая вводится в консоли, то для английского текста сравнение работает, а для русского нет.


#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>

using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
// русский текст в консоли
    setlocale(LC_ALL, "Russian");

cout << "Строка для поиска: ";


char ss[]="привет";
  
   const int MAX = 255;
   char d[MAX];

  cin.getline(d, MAX);


  if(!strcmp(ss,d)) {

  cout << "Строки равны" << endl;

  } else {

  cout << "Строки не равны!" << endl;
  
  } // end if

system("pause");
return 0;
}

  Ответить  
 
 автор: KernelPanic   (05.01.2013 в 15:17)   письмо автору
 
   для: Quies   (26.12.2012 в 03:56)
 

Вы кодировку игнорируете.
Код перед компиляцией должен иметь кодировку 866. Это если русский язык используете. Т.к. в виндовой консоли эта кодировочка используется. Тогда можно отказаться от setlocale за ненадобностью.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования