У меня есть символьный массив, который я должен полностью проверить. Надо сделать так, чтобы проверялись только буквенные символы, а спец. символы, числа, пробелы и юникод не проверялись.
Как сделать это?
Рекомендую, также, прочитать описание на английском cppreference .
Эта функция вернёт ненулевое значение, если аргумент является буквой в текущей локали, если это не буква - вернёт 0. В локали по умолчанию вернёт не ноль (true) для символов: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.
Пример использования:
std::string word;
std::cin >> word;
for (int i = 0; i < word.size(); ++i)
{
char x = word[i];
if (std::isalpha((unsigned char)x))
{
// some code
}
}
Другой способ, без использования стандартной библиотеки, но формально он не гарантируется стандартом (хотя на практике, скорее всего, так получится):
bool isLetter(char x)
{
return (x >= 'A' && x <= 'Z') || (x >= 'a' && x <= 'z');
}
Последний способ не очень хорош, потому что стандарт не гарантирует, что буквы идут по порядку от 'A' к 'Z' (и аналогично для строчных).
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При вводе количества секунд начинает грузить процессор
Подскажите, пожалуйста, как реализовать поставленную задачу"Завод выпускает разные измерительные приборы
Как укоротить сообщения об ошибках и предупреждения компилятора? Особенно при ошибках в шаблонах сначала идёт куча строк, в каком файле инстанциация...
После деплоя сервера при попытке получить JSON по адресу