PDA

Просмотр полной версии : [Вопрос] Вопрос по проверке символов в пароле



Сергей
15.01.2019, 20:49
Доброго времени суток, вопрос следующий, как сделать проверку на цифры, т.е, если игрок введет только цифры, появится диалог, если не только цифры а и буквы, то продолжим действие.

Alpano
15.01.2019, 21:18
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]){
//Действие если в тексте только символы
}
думаю логика понятна

m1n1vv
15.01.2019, 22:24
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])
//цифры и буквы

DeimoS
16.01.2019, 10:04
Не совсем понял зачем насиловать сегмент данных. Да и подсчёт символов там ни к чему, ибо задачи такой, судя по вопросу, не стоит.
Я бы сделал как-то так:
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-инъекций, достаточно запретить использовать одинарную кавычку и обратный слэш)

Сергей
16.01.2019, 22:41
Всем спасибо, можно закрывать.