SA-MP Forums

SA-MP Forums (https://forum.sa-mp.com/index.php)
-   Português/Portuguese (https://forum.sa-mp.com/forumdisplay.php?f=34)
-   -   [Ajuda] Excluir uma parte do nome (https://forum.sa-mp.com/showthread.php?t=672631)

SmokeKiLL 21/02/2020 11:11 PM

Excluir uma parte do nome
 
Fala pessoal, eu estou tentando excluir uma parte de um nome, tipo... Os nomes tem um padrão, exemplo:

Julia Batista de Oliveira
Evelyn Dias de Macena

Eu queria excluir tudo o que está depois do terceiro espaço, ou seja, o Oliveira / Macena em fim...

Como eu faço isso?

NWDMadara 21/02/2020 11:50 PM

Re: Excluir uma parte do nome
 
PHP Code:

new EspacoPos;

for(new 
i2; ++i){
    
EspacoPos strfind(string" "falseEspacoPos 1);
}

strdel(stringEspacoPossizeof(string)); 


SmokeKiLL 22/02/2020 12:37 AM

Re: Excluir uma parte do nome
 
Eu não entendi muito bem kkk, coloquei assim:

pawn Code:
function GetNameF(const string[])
{
    new EspacoPos;

    for(new i; i < 2; ++i){
        EspacoPos = strfind(string, " ", false, EspacoPos + 1);
    }

    strdel(string, EspacoPos, sizeof(string));
    return string;
}

Mas está dando erro.

NWDMadara 22/02/2020 01:12 AM

Re: Excluir uma parte do nome
 
não sei como que adapta pra stock, sou meio burro nisso. 2 erros que vi ai, você não pode retornar uma string em um função e a const está errada, já que a string sofrerá modificações.

use o código solto por hora, verá que funcionará.

Basicamente o código é assim:

for(new i; i < 2; ++i){
EspacoPos(1) = strfind(string, " ", false, EspacoPos(2) + 1); -
}


O EspacoPos(1) assumirá a posição do caractere do " ".

Já o Espaco(2) será responsável por procurar o próximo espaço (Ultimo Espaço + 1), pois aquele argumento é a partir de qual caractere ele vai começar a procurar. 'strfind(const string[], const sub[], bool:ignorecase=false, pos=0)'

Ele irá fazer isso até completar o loop, ou seja, até ele assumir a posição do terceiro espaço. 0, 1, 2.

E com isso eu utilizo strdel, começando pelo caractere que eu encontrei no loop e o fim da string, sizeof: 'strdel(string[], start, end)', passando por: 'strdel(string, EspacoPos, sizeof(string))'

G4M30V3R 22/02/2020 12:21 PM

Re: Excluir uma parte do nome
 
Quote:

Originally Posted by NWDMadara (Post 4132165)
não sei como que adapta pra stock, sou meio burro nisso.

Code:

#define function stock

RodrigoMSR 22/02/2020 05:07 PM

Re: Excluir uma parte do nome
 
PHP Code:

GetNameF(string[])
{
    new 
spacesslength strlen(string);

    for(new 
0slengthi++)
    {
        if(
string[i] == ' ')
        {
            if(++
spaces >= 2)
            {
                
strdel(stringislength);
                break;
            }
        }
    }
    return 
1;


Exemplo de uso:
PHP Code:

new str[] = "Julia Batista de Oliveira";
GetNameF(str);
printf(str);
//Resultado: Julia Batista 



All times are GMT. The time now is 03:25 PM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.