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

Сортировка слов в предложении по алфавиту - C++

Восстановить пароль Регистрация
 
KrisDen
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 10
13.03.2013, 15:49     Сортировка слов в предложении по алфавиту #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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <locale.h>
void main()
{
    setlocale(LC_CTYPE,"Russian");
    const int SIZE = 100;
    char *ch = new char[SIZE];
    puts("Введите строку: ");
    fgets(ch, SIZE, stdin);
 
    char *x[SIZE] = {0};
    char *p = strtok(ch, " ");
    int i = 0;
 
    while (p)
    {
        x[i++] = p;
        p = strtok(NULL, " ");
    }
 
    i = 0;
    puts("слова: ");
    while (x[i] != 0)
    {
        bool flag = false;
        for (int j = 0; j < i; ++j)
        {
            if (!strcmp(x[j], x[i]))
            {
                flag = true;
                break;
            }
        }
 
        if (!flag)
            puts(x[i++]);
    }
    getchar();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
13.03.2013, 15:53     Сортировка слов в предложении по алфавиту #2
Для русских букв и работы с ними

C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <windows.h>
 
int main()
{
// ...
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
13.03.2013, 15:58     Сортировка слов в предложении по алфавиту #3
Все функции использованные вами за исключением setlocale(), предназначены для работы с однобайтовыми символами. fgets() нужно заменить на fgetws(), все чары в том числе и массивы из char заменить на тип wchar_t.
KrisDen
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 10
13.03.2013, 16:01  [ТС]     Сортировка слов в предложении по алфавиту #4
эммм... все равно та же беда...
Миниатюры
Сортировка слов в предложении по алфавиту  
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
13.03.2013, 16:06     Сортировка слов в предложении по алфавиту #5
ну и strtok() на wcstok()
KrisDen
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 10
13.03.2013, 16:14  [ТС]     Сортировка слов в предложении по алфавиту #6
хм,теперь вон че говорит....
Миниатюры
Сортировка слов в предложении по алфавиту  
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11837 / 6816 / 771
Регистрация: 27.09.2012
Сообщений: 16,907
Записей в блоге: 2
Завершенные тесты: 1
13.03.2013, 16:19     Сортировка слов в предложении по алфавиту #7
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
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <locale.h>
#include <Windows.h>
int main()
{
    SetConsoleCP(1251);
     SetConsoleOutputCP(1251);
    const int SIZE = 100;
    char *ch = new char[SIZE];
    puts("Введите строку: ");
    fgets(ch, SIZE, stdin);
 
    char *x[SIZE] = {0};
    char *p = strtok(ch, " ");
    int i = 0;
 
    while (p)
    {
        x[i++] = p;
        p = strtok(NULL, " ");
    }
 
    i = 0;
    puts("слова: ");
    while (x[i] != 0)
    {
        bool flag = false;
        for (int j = 0; j < i; ++j)
        {
            if (!strcmp(x[j], x[i]))
            {
                flag = true;
                break;
            }
        }
 
        if (!flag)
            puts(x[i++]);
    }
    getchar();
}
Шрифт Lucida Console
Название: Безымянный.png
Просмотров: 145

Размер: 2.5 Кб
KrisDen
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 10
13.03.2013, 16:37  [ТС]     Сортировка слов в предложении по алфавиту #8
ахаах))это уже смешно...
Миниатюры
Сортировка слов в предложении по алфавиту   Сортировка слов в предложении по алфавиту  
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11837 / 6816 / 771
Регистрация: 27.09.2012
Сообщений: 16,907
Записей в блоге: 2
Завершенные тесты: 1
13.03.2013, 16:42     Сортировка слов в предложении по алфавиту #9
Цитата Сообщение от KrisDen Посмотреть сообщение
ахаах))это уже смешно...
ШРИФТ ПОМЕНЯЙТЕ!!!

Не по теме:

специально же жирным выделил

KrisDen
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 10
13.03.2013, 16:45  [ТС]     Сортировка слов в предложении по алфавиту #10
поменяла так то...
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11837 / 6816 / 771
Регистрация: 27.09.2012
Сообщений: 16,907
Записей в блоге: 2
Завершенные тесты: 1
13.03.2013, 16:49     Сортировка слов в предложении по алфавиту #11
Цитата Сообщение от KrisDen Посмотреть сообщение
поменяла так то...
Неужели не видите отличий в начертании шрифтов?
Название: Безымянный.png
Просмотров: 109

Размер: 3.1 Кб
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
13.03.2013, 18:19     Сортировка слов в предложении по алфавиту #12
Цитата Сообщение от Croessmah Посмотреть сообщение
Шрифт Lucida Console
Читерство какое-то. Как можно использовать char для unicode символов?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2013, 20:31     Сортировка слов в предложении по алфавиту
Еще ссылки по теме:

Сортировка слов из массива по алфавиту C++
C++ Сортировка слов из массива по алфавиту
Сортировка слов в char по алфавиту C++

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

Или воспользуйтесь поиском по форуму:
oleg@tor1
 Аватар для oleg@tor1
32 / 17 / 2
Регистрация: 05.09.2011
Сообщений: 152
16.03.2013, 20:31     Сортировка слов в предложении по алфавиту #13
Попробуйте:

C++
1
2
#include<locale.h>
setlocale (LC_ALL, "Russian");
Yandex
Объявления
16.03.2013, 20:31     Сортировка слов в предложении по алфавиту
Ответ Создать тему
Опции темы

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