Como getar nъmeros ?
#1

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.
Reply
#2

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
Reply
#3

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.
Reply
#4

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'" );
Reply
#5

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
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)