Ir ao conteúdo

Dúvida com cópia de strings


tilimtilim

Posts recomendados

Postado

#include <stdio.h>

#include<stdlib.h>

void copia (char destino,char origem)

{

while (origem)

{

destino=origem;

origem++;

destino++;

}

destino='\0';

}

int main ()

{

char str1[50],str2[50],str3[50];

printf ("digite algo : ");

fgets (str1,50,stdin);

copia (str2,str1);

copia (str3,"\tvoce digitou ");

printf ("\n\n%s%s",str3,str2);

printf("\n\n\n");

system("pause");

}

o que ta faltando

Postado

#include <stdio.h>
#include<stdlib.h>
void copia (char destino,char origem)
{
while (origem)
{
destino=origem;
origem++;
destino++;
}
destino='\0';
}

Você não pode fazer o comando destino=origem, pois uma string é um vetor do tipo char. Além disso, o nome da string (assim como em qualquer outro vetor) é um ponteiro para o primeiro elemento desse vetor. Então você deve fazer a cópia elemento a elemento da string.

Sendo assim, você pode implementar essa cópia da seguinte maneira, mais simples do que usando while:


void copia (char *destino, char *origem)

int i, TAM_ORIGEM;

TAM_ORIGEM = strlen (origem);

for (i=0; i<TAM_ORIGEM; i++)
{
destino[i] = origem[i];
}

A função strlen() retorna o tamanho da string "origem", ou seja, sua quantidade de elementos. Ela está implementada em <string.h> e você deverá adicioná-la ao código.

Mas o que não faz muito sentido é essa função não retornar nada à função main. Sendo do tipo void, você nunca vai ter essa string copiada na função main.

Na verdade é assim que a funçao interna strcpy funciona. Ela está implementada no arquivo cabeçalho <string.h>e no fim das contas é esse o código que ela executa. Portanto, chamar apenas strcpy(destino, orige) é bem mais simples do que fazer o código acima inteiro.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!