Доброго времени суток, вопрос следующий, как сделать проверку на цифры, т.е, если игрок введет только цифры, появится диалог, если не только цифры а и буквы, то продолжим действие.
Доброго времени суток, вопрос следующий, как сделать проверку на цифры, т.е, если игрок введет только цифры, появится диалог, если не только цифры а и буквы, то продолжим действие.
думаю логика понятнаPHP код:
new types[3];
for(new i,d = strlen(inputtext); i < d; i++){
switch(inputtext[i]){
case 'a'..'z','A'..'Z','а'..'я','А'..'Я','ё','Ё': types[0]++;
case '0'..'9': types[1]++;
default: types[2];
}
}
if(types[0] && !types[1] && !types[2]){
//Действие если в тексте только буквы
}
if(!types[0] && types[1] && !types[2]){
//Действие если в тексте только цыфры
}
if(!types[0] && !types[1] && types[2]){
//Действие если в тексте только символы
}
MyProject:
DriftEmpire©
Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
И делают качественно, чтобы потом не переделывать.
Сергей (16.01.2019)
PHP код:
static
types[2],
i,
c;
types[0] = types[1] = 0;
i = -1;
while((c = inputtext[++i]) != '\0')
{
switch (c)
{
case 'a'..'z','A'..'Z','а'..'я','А'..'Я','ё','Ё': types[0]++;
case '0'..'9': types[1]++;
}
}
if (!types[0] && types[1])
//только цифры
else if (types[0] && types[1])
//цифры и буквы
Сергей (16.01.2019)
Не совсем понял зачем насиловать сегмент данных. Да и подсчёт символов там ни к чему, ибо задачи такой, судя по вопросу, не стоит.
Я бы сделал как-то так:
new i = -1, c, bool:isfind = false; while((c = inputtext[++i]) != '\0') { switch(c) { case '0'..'9': { continue; } default: { isfind = true; break; } } } if(isfind == false) { //только цифры } else { //цифры и буквы }
В данном "else" сработает даже если поставить хоть один символ, отличный от цифры (ограничивать пароль только буквами и цифрами, отбрасывая символы - не очень разумная затея. Если боишься SQL-инъекций, достаточно запретить использовать одинарную кавычку и обратный слэш)
Последний раз редактировалось DeimoS; 16.01.2019 в 10:08.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Сергей (16.01.2019)
Всем спасибо, можно закрывать.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)