Просмотр полной версии : [Вопрос] Вопрос по проверке символов в пароле
Доброго времени суток, вопрос следующий, как сделать проверку на цифры, т.е, если игрок введет только цифры, появится диалог, если не только цифры а и буквы, то продолжим действие.
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]){
//Действие если в тексте только символы
}
думаю логика понятна
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]){
//Действие если в тексте только символы
}
думаю логика понятна
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])
//цифры и буквы
Не совсем понял зачем насиловать сегмент данных. Да и подсчёт символов там ни к чему, ибо задачи такой, судя по вопросу, не стоит.
Я бы сделал как-то так:
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-инъекций, достаточно запретить использовать одинарную кавычку и обратный слэш)
Всем спасибо, можно закрывать.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot