SA-MP Forums Archive
Como getar nъmeros ? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: Como getar nъmeros ? (/showthread.php?tid=238881)



Como getar nъmeros ? - Ricop522 - 12.03.2011

Como eu faзo para getar nъmeros de uma certa string ?

Ex:

"Vagabundo123"
Eu quero pegar esses 123 nъmeros e escrever em outra string sem retirar o Vagabundo123.


Re: Como getar nъmeros ? - rjjj - 12.03.2011

Vocк pode detectar partes da string , por exemplo:

Код:
new string[13] = "Vagabundo123";//Vetor/Array de tamanho 13, pois o texto tem 12 caracteres.

string[8] й o o de Vagabundo123.
string[9] й o 1 da Vagabundo123.
string[10] й o 2 da Vagabundo123.
string[11] й o 3 da Vagabundo123.
Daн se eu usar por exemplo:

pawn Код:
printf("%s", string[11]);
Vai mostrar o 3, de Vagabundo123.


Se fosse string[0], iria mostrar o V, de Vagabundo123.


Para adicionar em outra string, poderia fazer assim:


pawn Код:
new Outra[60];
format(Outra,60,"OutraString%s%s%s",string[9],string[10],string[11]);
//O texto ficaria:    "OutraString123".
Ou usando a funзгo strins ou strcat .



Espero ter ajudado


Re: Como getar nъmeros ? - Ricop522 - 12.03.2011

Nгo existe uma outra maneira de detectar nъmeros na string ? Porque a string que eu quero detectar nгo estб prй-definida no gamemode.


Re: Como getar nъmeros ? - LuxurioN™ - 12.03.2011

Quote:
Originally Posted by Ricop522
Посмотреть сообщение
Nгo existe uma outra maneira de detectar nъmeros na string ? Porque a string que eu quero detectar nгo estб prй-definida no gamemode.
Eu nгo consegui entender o que exatamente vocк quer. Mas, se vocк estб tentando encontrar os nъmeros "123" em uma string, basta usar "strfind".


Exemplo para encontrar os nъmeros 123 no nome do jogador:
Код:
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));

if(strfind(pName, "123", true) != -1 )
return SendClientMessage(playerid,COR,"Seu nome contйm '123'" );



Re: Como getar nъmeros ? - rjjj - 12.03.2011

Existe sim outra maneira, basta usar um loop dentro das variбveis que sгo partes da string

Fiz esses exemplos pra vocк na callback OnPlayerText no qual tem uma variбvel de texto (text) que nгo tem valor prй-definido:


Este usando apenas um loop. TextoFinal seria o texto no qual os nъmeros seriam colocados.


pawn Код:
public OnPlayerText(playerid, text[])
{
    new TextoFinal[70] = "Oi";
    for(new y = 0; y != strlen(text); y += 1)
    {
        if(text[y] == '1')//Checarб se parte da string й igual б 1
        {
            strcat(TextoFinal, text[y]);//Se for, essa parte (text[y]) serб acoplada б string final
        }
    }
    return 1;
}

Ou usando a funзгo IsNumeric (http://pastebin.com/rbcYFubV) :


pawn Код:
public OnPlayerText(playerid, text[])
{
    new TextoFinal[70] = "Oi";
    for(new y = 0; y != strlen(text); y += 1)
    {
        new ParteString[4];
        format(ParteString,4,"%s",text[y]);
        if(IsANumber(ParteString))//Checarб se a parte da string й um nъmero
        {
            strcat(TextoFinal, text[y]);//Se for, essa parte (text[y]) serб acoplada б string final
        }
    }
    return 1;
}
O resto dependerб da sua criatividade ao usar esses recursos


Espero ter ajudado