26.02.2012, 18:59
Здравствуйте, я перебробовал много разных способов как проверить ник игрока на формат A-Z, a-z, 0-9 и нашёл инклуд ctype который позволяет проверить принадлежность символа.
Вот описание данного инклуда:
Тут дан маленький пример как раз таки который мне и нужен.
Я написал код, который проверяет inputtext на A-Z, a-z, 0-9 но он всегда почему то возвращает false, будь то набор из букв A-Z, будь то набор из букв a-z, будь то цифры 0-9 будь то простые символы...
Вот код:
Может кто то работал в данной области и подскажет как мне сделать такую проверку.
Вот описание данного инклуда:
Код:
Для тех кто владеет языками C\C++ данный инклуд очень понравится! Он предназначен для работы с символами, и является точной копией оригинального заголовочного файла стандартной библиотеки ctype.h Функции: isalnum - проверка на принодлежность символа множеству букв и цифр (A-Z, a-z, 0-9) isalpha - проверка на принодлежность символа множеству букв (A-Z, a-z) iscntrl - проверка на принодлежность символа множеству управляющих сомволов (коды ASCII 0..31 и 127) isdigit - проверка на принодлежность символа множеству цифр (0-9) isgraph - проверка на принодлежность символа множеству печетаемых символов, кроме пробела islower - проверка на принодлежность символа множествубукв нижнего регистра (a-z) isprint проверка на принодлежность символа множеству печатаемых символов ispunct - проверка на принодлежность символа множеству знаков пунктуации isspace - проверка на принодлежность символа множеству символов разделителей isupper - проверка на принодлежность символа множествубукв верхнего регистра (A-Z) isxdigit - проверка на принодлежность символа множеству шестнадцатеричных цифр Функции принимают величину int и возвращают значение true если условие выполняется. Примеры: new name[24]; GetPlayerName(playerid, name, sizeof(name)); for(new i; i<sizeof(name); i++) { if(!isalnum(name[i])) Kick(playerid); // если символ не принадлежит множеству A-Z, a-z, 0-9 }
Я написал код, который проверяет inputtext на A-Z, a-z, 0-9 но он всегда почему то возвращает false, будь то набор из букв A-Z, будь то набор из букв a-z, будь то цифры 0-9 будь то простые символы...
Вот код:
Код:
new playername[24]; strmid(playername, inputtext, 0, strlen(inputtext), 255); for(new i; i<sizeof(playername); i++) { if(!isalnum(playername[i])) { format(string,sizeof(string),"{ffffff}Ник {ff0000}%s {ffffff}не подходит требованиям.\n\ [ {ff0000}! {ffffff}] Имя может быть не менее 3 и не более 20 символов.\n\ [ {ff0000}! {ffffff}] Имя должно быть формата - A-Z, a-z, 0-9. - {ff0000}Проверьте правильность этого пункта.", playername); ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Имя вашего персонажа", string, "Ввод",""); return 1; } }