#include <string.h> // <cstring> en C++
void * memccpy( void * restrict destination, const void * restrict source, int ch, size_t maxSize );
Cette fonction permet de copier un bloc de mémoire spécifié par le paramètre source
dans un nouvel emplacement désigné par le
paramètre destination
. La copie s'arrête soit après la première occurrence du caractère ch
, soit à la taille maximale
spécifiée par le paramètre maxSize
.
Il est bien entendu qu'il est de votre responsabilité d'allouer suffisamment de mémoire pour le bloc de destination afin qu'il puisse contenir toutes les données.
En cas de chevauchement des deux blocs de mémoire (source
et destination
) le comportement de la fonction memccpy
n'est pas garanti. Dans ce cas, veuillez préférer l'utilisation de la fonction memmove.
malloc
).
unsigned char
.
Si aucune occurrence du caractère ch
n'est trouvé, la fonction renverra un pointeur nul.
Dans le cas contraire, la fonction retournera un pointeur situé juste après le caractère ch
dans la chaîne finale.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { const char * text = "Ceci est ma première phrase. Et ceci est ma seconde"; size_t length = strlen( text ); // On essaye de trouver la première phrase dans le texte. char firstSentence[ length ]; char * res = memccpy( firstSentence, text, '.', length ); // On affiche le resultat. if ( res != NULL ) { printf( "Une phrase entière a été trouvée.\n" ); printf( "\t%s\n", firstSentence ); } else { printf( "Aucune phrase entière trouvée.\n" ); } return EXIT_SUCCESS; } |
Et voici le résultat produit par cet exemple de code.
$> gcc -o sample sample.c $> ./sample Une phrase entière a été trouvée. Ceci est ma première phrase. $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :