Вопрос о ctype.inc
#1

Здравствуйте, я перебробовал много разных способов как проверить ник игрока на формат A-Z, a-z, 0-9 и нашёл инклуд ctype который позволяет проверить принадлежность символа.
Вот описание данного инклуда:
Код:
Для тех кто владеет языками 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;
				}
			}
Может кто то работал в данной области и подскажет как мне сделать такую проверку.
Reply


Messages In This Thread
Вопрос о ctype.inc - by Crystal_Speed - 26.02.2012, 18:59
Re: Вопрос о ctype.inc - by ZiGGi - 26.02.2012, 19:47
Re: Вопрос о ctype.inc - by Crystal_Speed - 26.02.2012, 19:52
Re: Вопрос о ctype.inc - by ZiGGi - 26.02.2012, 20:11
Re: Вопрос о ctype.inc - by Crystal_Speed - 26.02.2012, 20:17
Re: Вопрос о ctype.inc - by Crystal_Speed - 26.02.2012, 20:44
Re: Вопрос о ctype.inc - by OKStyle - 27.02.2012, 00:41
Re: Вопрос о ctype.inc - by ZiGGi - 27.02.2012, 03:16
Re: Вопрос о ctype.inc - by frog163 - 04.03.2012, 10:58
Re: Вопрос о ctype.inc - by frog163 - 04.03.2012, 11:02

Forum Jump:


Users browsing this thread: 1 Guest(s)