Função para concatenar texto ilimitada
Publicado por eu 08/05/2008
[ Hits: 7.355 ]
Esta função concatena um número ilimitado de strings; a sequência de strings deve ser terminada por NULL.
Depende da stdlib.h por causa do malloc. No arquivo tem um main com um exemplo de como usá-la.
#include <stdio.h>
#include <stdlib.h>
char *conc(int i, ...)
{
int *p=&i;
char *texto,*pre;
int n=0,n2,k,j;
for(j=0;p[j]!=0;j++)
{
pre= (char *) p[j];
for(k=0;pre[k]!='{FONTE}';k++);
n+=k;
}
texto=malloc((n+1)*sizeof(char));
n=0;
for(j=0;p[j]!=0;j++)
{
pre= (char *) p[j];
for(k=0;pre[k]!='{FONTE}';k++) texto[n+k]=pre[k];
n+=k;
}
texto[n]='{FONTE}';
return texto;
}
int main ()
{
char texto1[80]="f";
char texto2[80]="/tmp/lte/13 Three Minute Warning [Continued].mp3";
char *texto;
texto=conc((int)"fbsetbg -",texto1," \"",texto2,"\"",0);
printf("%s\n",texto);
free(texto);
}
Organizar variáveis em ordem crescente
Teste de desempenho com números primos em C (corrigido)
Decimal, Hexa, Char para Binário
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









