Попытка разрешить конкретные символы в строке

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
198
Реакции
16
Помог
1 раз(а)
доброго времени суток. проблема в том, что при попытке указать символы 'A'..'Я', компилятор начинает ругаться. соответственно, хотелось бы знать что не так, и какими альтернативными методами можно решить эту проблему.

C++:
error 027: invalid character constant
error 029: invalid expression, assumed zero
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line

C++:
for(new i; i < iLen; i++)
{
    switch(text[i])
    {
        case 'A'..'Z', 'a'..'z', '0'..'9': {}

        default: return client_print_color(id, 0, "^4[ОШИБКА]^1 Некорректные символы!");
    }
}
C++:
for(new i; i < iLen; i++)
{
    switch(text[i])
    {
        case 'A'..'Z', 'a'..'z', '0'..'9', 'А'..'Я': {}

        default: return client_print_color(id, 0, "^4[ОШИБКА]^1 Некорректные символы!");
    }
}
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
kucklovod, utf-8 символы зпанимают от 1 до 4 байт в амхх. Вы же указали char, что в павне тоже самое что crell, который равен 1 байту. Кирилица туда просто не влазит
5 Авг 2019
ps вместо такого огромного switch..case лучше использовать регулярку. Это и быстрее и проще и грамотней
 
Сообщения
198
Реакции
16
Помог
1 раз(а)
fantom, спасибо. с регулярками я работал еще в php, очень непонятные они для меня, поэтому выбрал цикл с кейсами.
 
Сообщения
198
Реакции
16
Помог
1 раз(а)
смог. вопрос закрыт.

C++:
new Regex:zRes, iReturn;
   
zRes = regex_compile("^^[A-Za-z0-9]+$");
regex_match_c(text, zRes, iReturn);

if (!iReturn)
    return client_print_color(id, 0, "^4[ОШИБКА]^1 Некорректные символы!");
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу