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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
supra7sky
15 / 15 / 1
Регистрация: 07.02.2013
Сообщений: 123
#1

Какой есть аналог isalpha для работы с русским алфавитом? - C++

20.05.2013, 21:36. Просмотров 1552. Ответов 5
Метки нет (Все метки)

Использую string и нужно проверять записан ли внутри текст или число. Какими средствами можно это сделать? Обычный isalpha(str.c_str()[0]) выдает ошибку когда русский.
- В string-e большой функционал. Где можно про него почитать, о всех его методах? (желательно на русском)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2013, 21:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Какой есть аналог isalpha для работы с русским алфавитом? (C++):

Есть ли аналог isalpha, только для string - C++
Добрый вечер! Как проверить, что введены только буквы, без символов, isalpha не прокатило:curtsy: , тока для символов cout<<"enter a...

шифр Цезаря с русским алфавитом - C++
Всем добрый вечер... мне не очень удобно просить, но у меня появилась одна поблемка... есть программа написанная на C# на Visual 2010, а...

Аналог функции isalpha() (<cctype>) - C++
Здравствуйте) Я так понял, функция isalpha() не работает с русскими буквами(?), пришлось написать свою версию для работы с русскими...

Какой есть аналог CreateGraphics из C#? - C++
Доброго времени суток. Собственно проблема возникла во время конвертации кода с C# на C++. Есть шарповский код: Graphics g =...

Есть ли в с++ какой-нибудь аналог in - C++
Есть ли в с++ какой-нибудь аналог in К примеру в вот такая задача Подсчитать количество гласных символов в тексте в паскале все...

Какие методы есть в C++ для работы с файлами и в каких случаях какой лучше применять - C++
Какие методы есть в С++ для работы с файлами и в каких случаях какой лучше применять? обычно пользовался freopen знаю еще есть fopen и ...

5
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.05.2013, 21:55 #2
Есть такая версия isalpha.
Ну либо ручками написать.
1
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
20.05.2013, 22:00 #3
можно и самому написать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
bool isalpha_rus(char c) {
    return c >= 'а' && c <= 'я' || c >= 'А' && c <= 'Я'
        || c == 'ё' || c == 'Ё'; // если надо включаем букву ё
}
 
int main() {
    setlocale(0, "");
    char arr[] = "Ля-ля-ля-ля-ля-ля танцуют звёзды и луна";
    int i = 0;
    while (arr[i]) {
        if (isalpha_rus(arr[i]))
            std::cout << "Это русская буква " << arr[i] << std::endl;
        ++i;
    }
    system("PAUSE>0");
    return 0;
}
в браузере есть переводчик.
Если хочешь заниматься программированием, то без английского никак.
1
Croessmah
Эксперт CЭксперт С++
13416 / 7570 / 855
Регистрация: 27.09.2012
Сообщений: 18,632
Записей в блоге: 3
Завершенные тесты: 1
20.05.2013, 22:16 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstring>
 
int main() {
    setlocale(0, "");
    char arr[] = "Ля-ля-ля-ля-ля-ля танцуют звёзды и луна";
    int i = 0;
    while (arr[i]) {
        if (isalpha((unsigned char)arr[i]))
            std::cout << "Это русская буква " << arr[i] << std::endl;
        ++i;
    }
    system("PAUSE>0");
    return 0;
}
2
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
08.06.2014, 20:09 #5
Цитата Сообщение от SummerRain Посмотреть сообщение
можно и самому написать
Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
bool isalpha_rus(char c) {
* * return c >= 'а' && c <= 'я' || c >= 'А' && c <= 'Я'
* * * * || c == 'ё' || c == 'Ё'; // если надо включаем букву ё
}
int main() {
* * setlocale(0, "");
* * char arr[] = "Ля-ля-ля-ля-ля-ля танцуют звёзды и луна";
* * int i = 0;
* * while (arr[i]) {
* * * * if (isalpha_rus(arr[i]))
* * * * * * std::cout << "Это русская буква " << arr[i] << std::endl;
* * * * ++i;
* * }
* * system("PAUSE>0");
* * return 0;
}
в браузере есть переводчик.
Если хочешь заниматься программированием, то без английского никак.
можно поинтересоваться как именно это работает? программа не распознает букву, а лишь возвращает введеное значение или как еще, ведь у нее для проверки есть только ASCII-таблица и пробежаться 'а'-'я' она не может, как я понял. Сори за нубский вопрос...
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
08.06.2014, 21:00 #6
Цитата Сообщение от supra7sky Посмотреть сообщение
Использую string и нужно проверять записан ли внутри текст или число. Какими средствами можно это сделать? Обычный isalpha(str.c_str()[0]) выдает ошибку когда русский.
- В string-e большой функционал. Где можно про него почитать, о всех его методах? (желательно на русском)
Есть еще isdigit
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2014, 21:00
Привет! Вот еще темы с ответами:

Есть ли какой-нибудь аналог c# using или python with в c++ ? - C++
В C# (using pattern) и python есть специальные конструкции которые позволяют не следить за закрытием файла после окончания блока. using...

А есть какой нибудь широкий аналог std::ofstream? - C++
Ну чтоб wchar_t и указатель на wchar_t принимал. Хоть в какой нибудь уникодовой кодировке.

Как изменить расширение файлов в папке средствами C++ (возможно, есть какой-то аналог changefileext из делфи)? - C++
Всем здравствуйте! Я пришёл к вам за помощью!) Подскажите пожалуйста как можно изменить расширение файлов в папке. Точнее говоря, у...

Аналог функций для работы со списками - C++
Помогите найти/написать аналоги функции для работы со списками(2-3 из перечисленных) :...


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

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

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