Copie de tableau de caractères

Transcription

Copie de tableau de caractères
Copie de tableau de caractères
3 versions
tableau
pointeur + indice
pointeur + increment
Clarifier le contrat
Copier le contenu d’un tableau dans un autre
Le tableau destination doit être assez grand
Le tableau source doit avoir une marque de fin (\0)
La marque de fin sera ajoutée au tableau destination
2 arguments:
dst = argument de sortie
src = argument d’entrée
« Vision » tableau
On ne voit pas de pointeur …
void copy(char dst[], char src[])
{
int i;
for (i=0;src[i] != ‘\0’; i++)
{
dst[i] = src[i];
}
dst[i] = ‘\0’;
}
« Vision » mixte …
Utilisation indice 0, incrément des pointeurs …
src et dst sont jetables
void copy(char dst[], char src[])
{
for ( ;src[0] != ‘\0’; src++, dst++)
{
dst[0] = src[0];
}
dst[0] = ‘\0’;
}
« Vision » pointeurs …
Utilisation indirection, incrément des pointeurs …
src et dst sont jetables
void copy(char* dst, char* src)
{
for ( ;*src != ‘\0’; src++, dst++)
{
*dst = *src;
}
*dst = ‘\0’;
}
Ecritures « compactes » …
void copy(char* dst, char* src)
{
while (*src != ‘\0’)
{
*dst++ = *src++;
}
*dst = ‘\0’;
}
void copy(char* dst, char* src)
{
while ((*dst++ = *src++) != ‘\0’)
{
;
}
}
// THE MUST!
void copy(char* dst, char* src)
{
while (*dst++ = *src++) ;
}

Documents pareils