Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Luís Paiva

strcpy alternativa

Mensagens Recomendadas

Luís Paiva
char *mystrcpy(char s1[], const char s2[]) {
 int i;
 for (i=0;s2[i]!='\0';i++)
 s1[i]=s2[i];
 s1[i]='\0';
 return s1;
} 

Este programa não foi feito por mim, mas disseram-me que é assim que se faz a minha própria função strcpy. Mas como é possível esta função estar correta? o estado de s1 [ i ] não será sempre '\0' ?

O programa parece-me que faria mais sentido se fosse retirada a linha s1[ i ] = '\0' . Por favor ajudem-me. 😫

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

Esse programa é equivalente a este:

char *mystrcpy(char s1[], const char s2[]) {
  int i;
  for (i=0; s2[i]!='\0'; i++) {
    s1[i]=s2[i];
  }
  s1[i]='\0';
  return s1;
} 

Percebes agora por que razão o programa está correcto?

O s[ i ] será '\0', mas só para o último valor de i.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.