Luís Paiva 0 Posted March 12, 2019 Report Share Posted March 12, 2019 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. 😫 Link to post Share on other sites
Rui Carlos 359 Posted March 16, 2019 Report Share Posted March 16, 2019 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. Rui Carlos Gonçalves Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now