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

Форум C++

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Не работает сравнение строк strcmp

Сообщения:  [1-2] 

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

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

  Ответить  
 
 автор: 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;
}

  Ответить  

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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