Portal SAMP
[Ajuda] Strcat - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Strcat (/showthread.php?tid=4686)



Strcat - Duzzxls - 11/04/2024

Como concatenar 3 frases ou mais usando o strcat? Eu vi em um código que se cria uma variável e dá a ela o valor de EOS, tipo eu queria entender como funciona isso.


RE: Strcat - Carlos Victor - 11/04/2024

A função strcat, ela por sua vez, concatena (junta) duas strings, sendo a primeira a string base, e a segunda, a que irá se juntar.

Exemplos:

Eu desejo juntar a palavra "amo" na frase que está escrita apenas "eu te", para isso, em um exemplo prático do Pawn, iremos fazer:

Código PHP:
new
    
string[10] = "Eu te";

print(string);
Eu te

strcat
(string" amo.");

print(string);
Eu te amo
Percebe-se que no uso do strcat eu utilizei o espaço, caso não tivesse usado, a frase final ficaria: "Eu teamo", isto porque, a função apenas junta o A + B (string 1 e string 2) em uma só.

Sobre o seu tópico:
Já foi explicado como funciona o strcat, sobre juntar usar três vezes, não tem problema, você pode usar até milhões de vezes, a função sempre funcionará da mesma forma.

Sobre a variável com o valor EOS, é porque esse valor limpa a variável, deixa ela nula, é como se fosse: "" (tem nada escrito), geralmente, se usa o EOS em variáveis estáticas, no caso você limpa uma variável, caso ela seja estática, caso você crie uma variável comum, normal utilizando o new, a variável automaticamente irá ser criada vazia, sem nada dentro. Deixarei um exemplo com base na sua dúvida abaixo:
Código PHP:
new
    
string[10];

print(string);


strcat(string"Eu ");
print(string);
Eu 

strcat
(string"te ");
print(string);
Eu te 

strcat
(string"amo.");
print(string);
Eu te amo

Caso deseja ler sobre a função de uma melhor forma, mais detalhada, leia: https://www.open.mp/docs/scripting/functions/strcat


RE: Strcat - Duzzxls - 20/04/2024

Então da pra criar uma variável base que armazena um texto assim usando format: "Nome\t\t\tID\n" e criar uma nova variável que armazenara um ou mais textos contendo informações?


RE: Strcat - Dr Editor - 20/04/2024

Você pode concatenar com strcat ou formatando a variável:

Usando strcat:
Código PHP:
static var[25];

var = 
"olá!";
strcat((var[0] = '\0', var), "teste"); // Limpa a variável e atribui o valor para "teste"
strcat((var[0] = '\0', var), "outro teste"); // Limpa a variável e atribui o valor para "outro teste"
strcat(var, " mais um teste"); // Atribui o valor para "outro teste mais um teste" 

Usando format:
Código PHP:
format(var, sizeof var, "teste"); // Limpa a variável e formata, atribuindo seu valor para "teste"
format(var, sizeof var, "%s de formatação", var); // Limpa a variável e formata, aproveitando o valor da variável e atribuindo seu valor para "teste de formatação" 



RE: Strcat - xbruno1000x - 21/04/2024

Um exemplo de como usar o strcat para concatenar textos numa dialog:
Código:
CMD:lojaconveniencia(playerid)
{
    new loja[2860], string[128];
    format(loja, sizeof loja, "Item ID\tNome do Item\tPreço\n");
    strcat(loja, "{696969}0\t{CFCFCF}Nenhum item\t{FFFFFF}R$ 0\n");
    strcat(loja, "{696969}1\t{CFCFCF}Pacote de batatas fritas\t{76EE00}R$ 5\n");
    strcat(loja, "{696969}2\t{CFCFCF}Barra de chocolate\t{76EE00}R$ 10\n");
    strcat(loja, "{696969}3\t{CFCFCF}Refrigerante\t{76EE00}R$ 7\n");
    strcat(loja, "{696969}4\t{CFCFCF}Sanduíche de presunto\t{76EE00}R$ 8\n");
    strcat(loja, "{696969}5\t{CFCFCF}Café\t{FF3030}R$ 4\n");
    strcat(loja, "{696969}6\t{CFCFCF}Salgadinho\t{FF3030}R$ 6\n");
    strcat(loja, "{696969}7\t{CFCFCF}Pacote de biscoitos\t{FF3030}R$ 9\n");
    strcat(loja, "{696969}8\t{CFCFCF}Hambúrguer\t{FF3030}R$ 12\n");
    strcat(loja, "{696969}9\t{CFCFCF}Muffin de chocolate\t{9B4D00}R$ 3\n");
    strcat(loja, "{696969}10\t{CFCFCF}Sorvete\t{9B4D00}R$ 6\n");
    strcat(loja, "{696969}11\t{CFCFCF}Pacote de pipoca\t{9B4D00}R$ 4\n");
    strcat(loja, "{696969}12\t{CFCFCF}Cachorro-quente\t{9B4D00}R$ 10\n");
    strcat(loja, "{696969}13\t{CFCFCF}Bebida energética\t{0000FF}R$ 8\n");
    strcat(loja, "{696969}14\t{CFCFCF}Pacote de doces\t{0000FF}R$ 7\n");
    strcat(loja, "{696969}15\t{CFCFCF}Sanduíche de frango\t{0000FF}R$ 9\n");
    strcat(loja, "{696969}16\t{CFCFCF}Pão de queijo\t{0000FF}R$ 5\n");
    strcat(loja, "{696969}17\t{CFCFCF}Bolo de cenoura\t{FFFF00}R$ 12\n");
    strcat(loja, "{696969}18{FFEC8B}(VIP)\t{CFCFCF}Café da manhã completo\t{54FF9F}R$ 15\n");
    format(string, sizeof string, "{EE2C2C}<< Novo >>\t{FFF68F}Comprar novo item ID: {EE2C2C}[%d]\n", lojaInfo[playerid][item_quantidade] + 1);
    strcat(loja, string);
    format(string, sizeof string, "Você pode comprar até o item ID: {01DF01}[%d]", lojaInfo[playerid][item_quantidade]);
    ShowPlayerDialogEx(playerid, DIALOG_LOJA, DIALOG_STYLE_TABLIST_HEADERS, "Bem-vindo à loja de conveniência", loja, "Selecionar", "Fechar");
    return 1;
}