Pages: [1]   Go Down
Author Topic: Concatenar Strings  (Read 1826 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 7
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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);

« Last Edit: May 14, 2009, 11:03:01 pm by KBK » Logged

Pages: [1]   Go Up
Jump to: