Je résoudre ce K & exercice R:Comment écrire des fonctions de chaîne C: strncpy, strncat et strncmp
versions d'écriture des fonctions de bibliothèque strncpy, strncat et strncmp, qui fonctionnent sur au plus la première n caractères de leurs chaînes d'arguments. Par exemple, strncpy (s, t, n) copie au plus n caractères de t à s. Les descriptions complètes sont dans l'annexe B.
Donc je me promenais s'il y a un site qui contient le code source pour ces fonctions de chaîne afin que je puisse vérifier si j'ai fait quelque chose de mal.
Ce sont les versions que j'ai écrites: j'apprécierais si vous me diriez si j'ai des bogues dans les fonctions ou quelque chose que je devrais ajouter/corriger/améliorer!
int strncmp(char *s, char *t, int n)
{
if(strlen(s) == strlen(t)) {
while(*s == *t && *s && n)
n--, s++, t++;
if(!n)
return 0; /* same length and same characters */
else
return 1; /* same length, doesnt has the same characters */
}
else
return strlen(s) - strlen(t);
}
char *strncpy(char *s, char *t, int n)
{
while(n-- && *s) {
*s = *t;
s++, t++;
}
if(strlen(t) < n)
*s = '\0';
return s;
}
char *strncat2(char *s, char *t, int n)
{
while(*s)
s++;
while(n-- && *t)
*s = *t, s++, t++;
*s = '\0';
return s;
}
+1, et vous avez raison: 'pads strncpy()' la destination avec '0's à la fin. –