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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gorus95
5 / 5 / 1
Регистрация: 22.12.2012
Сообщений: 151
Завершенные тесты: 1
#1

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

01.04.2013, 21:27. Просмотров 540. Ответов 3
Метки нет (Все метки)

Есть программа - вводим текст, выводит самое длинное слово.
Кликните здесь для просмотра всего текста
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");
}

работает отлично, НО только с английским текстом
помогите
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 21:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не воспринимает кириллицу (C++):

char не воспринимает %c, но воспринимает %s - C++
Вопрос в строке &quot;fprintf(f, &quot;%s&quot;, text);&quot;. Переменная text имеет тип char, однако если я пишу %c, то текст в файл не выводится, а если пишу...

Не воспринимает проверку - C++
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;string&quot; #include &quot;conio.h&quot; #define NMAX 4 void vvod(double m, char name) ...

Не воспринимает тип данных - C++
Задача: Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789). ...

VS не воспринимает пользовательские классы - C++
Делал задачу: работа с коллекцией прямоугольников. За создание, удаление и хранение отвечает отдельный класс. Выбор действия организован с...

Студия не воспринимает операторы С++ - C++
С недавнего времени Visual Studio 2010 перестал идентифицировать операторы С++. Для примера в этом коде #include &lt;iostream&gt; #include...

Не воспринимает русский язык - C++
Очень нужна помощь , стипендия горит. Никак не могу исправить , при выводе всех значений не выводит русский, а иероглифы . Знаю что тема...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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);
2
Pepsy
01.04.2013, 21:31
  #3

Не по теме:

Опоздал((

0
gorus95
5 / 5 / 1
Регистрация: 22.12.2012
Сообщений: 151
Завершенные тесты: 1
01.04.2013, 21:38  [ТС] #4
спасибо, работает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2013, 21:38
Привет! Вот еще темы с ответами:

Компилятор не воспринимает русские буквы - C++
Допустим. дано предложение: &quot;Я хочу выучить С++&quot;. Нужна найти количество вхождений буквы &quot;о&quot; в предложение. Как это сделать, если...

Вижал студио не воспринимает чар - C++
Проблема с тем, что вижал студио не воспринимает мой ввод функций вычитания сложения и проч. Если сделать с помощью банального...

Почему компилятор не воспринимает define константу - C++
Почему ни GCC, ни VS 2010 не компилируют следующий код из книги Шилдта &quot;Самоучитель по С++&quot;? #include &lt;iostream&gt; using namespace std; ...

Visual Studio 2012 не воспринимает функцию cout<< - C++
Вот код программы: #include &lt;iostream&gt; using namespace std; int main() { cout &lt;&lt; &quot;Моя первая программа на С++\n&quot;; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.04.2013, 21:38
Ответ Создать тему
Опции темы

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