Go Down

Topic: Concatenar Strings (Read 2032 times) previous topic - next topic

avoletta

Olá Pessoal,

Como produzir o seguinte efeito:

char A[]="SA";
char B[]="PA";
char C[]="TO";

char x[]=A+B+C; e lógicamente = "SAPATO"  (???...)


Obrigado

KBK

#1
May 15, 2009, 05:51 am Last Edit: May 15, 2009, 06:03 am by KBK Reason: 1
Bom, vou te ajudar com uma função que faz exatamente isso.
Primeiramente, você precisar saber que o conteúdo da string A no seu exemploe é: 'S,A,\0'   com o \0 indicando o fim da string. Essa terceira posição, pode ser interpretada como 0 (falso) por qualquer lógica.
O procedimento, como você deve ter pensado, é ler posição por posição de cada string e escrever na string X.

Code: [Select]

void conca(char *psA,char *psB,char *psC,char *psX)
{
    while(*psA)            //Enquanto não encontrar \0
    {
           *psX=*psA;      // X recebe o valor de A, lembrando que os 2 começam da posição 0
           psA++;         //Avança uma posição        
           psX++;         //Avança uma posição
    }
    while(*psB)            //Enquanto não encontrar \0
    {
           *psX=*psB;      // X recebe o valor de B, lembrando que X não está na posição 0
           psB++;         //Avança uma posição        
           psX++;         //Avança uma posição
    }
    while(*psC)            //Enquanto não encontrar \0
    {
           *psX=*psC;      // X recebe o valor de C, lembrando que X não está na posição 0
           psC++;         //Avança uma posição        
           psX++;         //Avança uma posição
    }
}


então no seu programa você chama ela quando quiser:
conca(A,B,C,X);

Lembrando que você tem que definir X com tamanho maior que a soma das 3.

Caso queira fazer a mesma coisa com outras string, gravar J, K e L na Y, é só chamar a função com os argumentos certos.
conca(J,K,L,Y);


Go Up