Форум программистов, компьютерный форум CyberForum.ru

Не воспринимает кириллицу - C++

Войти
Регистрация
Восстановить пароль
 
gorus95
5 / 5 / 1
Регистрация: 22.12.2012
Сообщений: 145
01.04.2013, 21:27     Не воспринимает кириллицу #1
Есть программа - вводим текст, выводит самое длинное слово.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
using namespace std;
 
char longest_word[1000];
unsigned short int temp;
unsigned short int maximum = 1;
 
bool letter (const char &text)
{
     if ((text >= 'a') && (text <= 'z') ||
         (text >= 'A') && (text <= 'Z') ||
         (text >= 'Г*') && (text <= 'Гї') ||
         (text >= 'ГЂ') && (text <= 'Гџ'))
     return true;
     else return false;
}
 
void find_word (const char *text, unsigned short int i)
{
    bool marker = false;
    short int j = i - 1;
    unsigned short int temp_max = 1;
    do
    {
        if (!letter(text[j]))
            marker = true;
        temp_max ++;
        j --;
    } while ((text[j] != ' ') && (text[j] != '\t') && (j != -1));
    if ((!marker) && (temp_max > maximum))
    {
        temp = 0;
    for (j++; j < i; j++, temp++)
    {
        longest_word[temp] = text[j];
    }
    maximum = temp_max;
    }
    
}
 
int main (void)
{
    setlocale (LC_ALL, "");
    cout << " Введите текст" << endl;
    unsigned short int i = 0;
    char text[1000];
    gets(text);
    text[(unsigned int)strlen(text)] = ' ';
    do
    {
        if ((text[i] == ' ') || 
            (text[i] == ',') || 
            (text[i] == '.') ||
            (text[i] == '!') ||
            (text[i] == '?') ||
            (text[i] == '\t'))
        {
            find_word(text, i);
        }
        i ++;
    } while (i <= (unsigned int) strlen(text)+1);
    cout << endl << " Самое длинное слово - " << longest_word;
    cout << endl << " Длинна слова " << maximum - 1 << " символов" << endl << endl;
    system("pause");
}

работает отлично, НО только с английским текстом
помогите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 21:27     Не воспринимает кириллицу
Посмотрите здесь:

C++ char не воспринимает %c, но воспринимает %s
C++ Не воспринимает тип данных
C++ Не отображает кириллицу!
Почему компилятор не воспринимает define константу C++
C++ Вижал студио не воспринимает чар
C++ Не воспринимает проверку
Функция strtok() не воспринимает пробел как разделитель C++
Студия не воспринимает операторы С++ C++
C++ Не воспринимает русский язык
VS не воспринимает пользовательские классы C++
Кириллицу в UTF-8 C++
Компилятор не воспринимает русские буквы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Friday
ну и долго меня небыло...
 Аватар для Friday
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
01.04.2013, 21:29     Не воспринимает кириллицу #2
C++
1
2
3
4
5
6
7
8
// установить вручную шрифт Lucida Console в свойствах окна консоли 
// и запомнить это для всех окон с этим именем
// записать в начале программы строку 
 #include <windows.h>
// записать в начале функции main ( после строки с символом [B]{[/B] ) 
// две следующих строки 
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
Pepsy
01.04.2013, 21:31
  #3

Не по теме:

Опоздал((

gorus95
5 / 5 / 1
Регистрация: 22.12.2012
Сообщений: 145
01.04.2013, 21:38  [ТС]     Не воспринимает кириллицу #4
спасибо, работает
Yandex
Объявления
01.04.2013, 21:38     Не воспринимает кириллицу
Ответ Создать тему
Опции темы

Текущее время: 13:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru