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

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

Войти
Регистрация
Восстановить пароль
 
LifeWind
4 / 4 / 1
Регистрация: 13.09.2012
Сообщений: 36
#1

Упорядоченность букв по алфавиту(русских) - C++

24.12.2012, 20:16. Просмотров 757. Ответов 2
Метки нет (Все метки)

Дана строка букв русского алфавита. определить, упорядочены ли буквы по алфавиту
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 20:16     Упорядоченность букв по алфавиту(русских)
Посмотрите здесь:

C++ Из русских букв в английские
C++ перевод русских букв в транслит
C++ Номера русских букв в ASCII
C++ Запись русских букв в массив!
кодировка русских букв в MAC OS C++
C++ Запрет ввода русских букв....
Проверка строчных букв на упорядоченность по алфавиту C++
Вывод русских букв в консоли C++
Сравнение русских букв с их кодами C++
C++ Ввод русских букв
C++ Количество русских букв в строке
Подсчет русских букв в строке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Asdprom
22 / 21 / 1
Регистрация: 19.12.2011
Сообщений: 75
25.12.2012, 18:53     Упорядоченность букв по алфавиту(русских) #2
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Rus" );    // изменяем кодировку на Windows-1251
    char alf [ 34 ] = "АВБГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
    char a;
    int c = 0;
    int i = 0;
 
    for ( c = 192, i = 0; c <= 223; c ++, i++ )// в этой кодировке, символы больших букв русского алфавита начинаются с 192 позиции
    {
        a = (char) c;                         // получаем порядковый символ из таблицы ( буква Ё отсутствует в 1251 )
        if ( a != alf [i] )
        {
            cout<<"NO\n";           // если один из символов не равен эталонному, то алфавит расположен не по порядку
            system( "pause" );
            return 0;
        }
    }
    cout<<"YES\n";      // иначе это русский алфавит.
    system( "pause" );
 
    return 0;
}
Если же необходимо проверить вообще любую строку, то этот код легко модифицировать.

Добавлено через 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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Rus" );
    char alf [ 34 ] = "АБВГДЕЖЗИЛМНОПРСТУФЧШЬЭЮЯ";
    char a;
    int c = 0;
    int i = 0;
 
    for ( c = 192, i = 0; c <= 223; c ++, i++ )
    {
        a = (char) c;
        if ( a > alf [i] )
        {
            cout<<"NO\n";
            system( "pause" );
            return 0;
        }
    }
    cout<<"YES\n";
    system( "pause" );
 
    return 0;
}
Для любой строки.

Добавлено через 20 часов 55 минут
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Rus" );
    char alf [ 34 ] = "АБЛФЭЯЮ";
    char a;
    int c = 0;
    int i = 0;
    a = (char) 192;
    for ( i = 0; alf [ i ] != '\0';  i++ )
    {
 
        if ( a > alf [i] )
        {
            cout<<"NO\n";
            system( "pause" );
            return 0;
        }
        a = alf [ i ];
    }
    cout<<"YES\n";
    system( "pause" );
 
    return 0;
}
Извините, ошибся маленько - вот вроде рабочий вариант.
LifeWind
4 / 4 / 1
Регистрация: 13.09.2012
Сообщений: 36
24.01.2013, 16:54  [ТС]     Упорядоченность букв по алфавиту(русских) #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
#include <iostream>
#include <string>
 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian" );    
    unsigned char s[256];
    int alf[256];
    cout << "Введите строку: " << endl;
    cin >> s;
 
    for(int i=0; s[i] != '\0'; i++) 
    {
        alf[i]=s[i];
        if (!((alf[i] >= 128 && alf[i] <= 239) && alf[i]-alf[i-1] > 0 )) 
        {
            cout <<"Не упорядочены" << endl;
            system( "pause" );
            return 0;
        }
        
    }
    cout << "Упорядочены" <<endl;
    return 0;
}
Yandex
Объявления
24.01.2013, 16:54     Упорядоченность букв по алфавиту(русских)
Ответ Создать тему
Опции темы

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