[Ajuda] Como verificar se o digitado estб da maneira pedida
#5

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
Nгo й querendo tirar a graзa, que nem vocк disse que nгo queria o cуdigo pronto...
Mas nesse cуdigo aqui vocк iria se quebrar um pouco pra fazer, ou entгo ele iria ficar muito (nгo funcional) ahuehuae, com todo respeito.

Eu fiz um aqui simples, rapidinho.

Code:
pawn Код:
stock isNumber(n[])
{
    for (new i = 0; n[i]; ++i) if (n[i] > '9' || n[i] < '0') return 0;
    return 1;
}
stock readFormat(reader[])
{
    if (reader[0] == '\0' || strfind(reader, "/") == -1) return false;

    new
        sS = 0,
        sNextVal[15],
        sOldVal[15];
       
    format(sOldVal, 15, "%s/", reader);
   
    do
    {
        if ((sS = strfind(sOldVal, "/")) != -1)
        {
            strmid(sNextVal, sOldVal, 0, sS);
            strmid(sOldVal, sOldVal, sS + 1, strlen(sOldVal));
            if (!isNumber(sNextVal)) return 0;
        }
    } while(sS > 0);
    return 1;
}
O que ele faz ? ele verifica se a string estб nulla, se tiver nulla retorna false.
Verifica se existe '/' nela, se nгo existir retorna null.
Verifica se os valores que estгo entre as barras: 10/10/1000, sгo nъmeros...
Se nгo forem nъmeros retorna FALSE tambйm.

Й basicamente oque vocк queria, mas ainda tem umas formas de burlar isso, ainda mais pra usuбrios.
Que sгo a praga de qualquer programador em relaзгo a achar bugs no seu code.
Nгo tem necessidade de criar uma funзгo para checar se a string й um nъmero, o prуprio SA-MP nos proporciona uma.


pawn Код:
new var[] = "aa";

if (!strval(var)) printf("Nгo й nъmero!");
if (strval(var)) printf("Й nъmero!");
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)