Participer au site avec un Tip
Rechercher
 

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 :

Fonction strncpy

La fonction strncmp La fonction strndup


Entête à inclure

#include <string.h>  // <cstring> en C++

Fonction strncpy

char * strncpy( char * destination, const char * source, size_t length );                       // Avant C99
char * strncpy( char * restrict destination, const char * restrict source, size_t length );     // A partir de C99

Cette fonction permet de copier le contenu d'une chaîne de caractère dans une autre, dans la limite de length caractères. Plusieurs cas peuvent être considérés :

Rappel : en langage C, les chaînes de caractères sont qualifiées d'AZT : A Zéro Terminal. Cela signifie qu'une chaîne de caractères se termine forcément par un code ASCII nul (pouvant aussi être représenté par '\0').

Paramètres

Valeur de retour

La fonction renvoie l'adresse de la chaîne dupliquée. Attention, elle ne sera pas forcément terminée par un caractère '\0'.

Exemple de code

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

define SHORT_LENGTH 10

int main() {

    const char * longString = "A long message"; 
    char buffer[ SHORT_LENGTH ];

    strncpy( buffer, longString, SHORT_LENGTH );
    if ( strlen( longString ) >= SHORT_LENGTH ) {
        puts( "Must add last '\\0' character." );
        buffer[ SHORT_LENGTH -1 ] = '\0';
    }
        
    puts( buffer );
    
    return 0;
}

Sujets connexes

malloc
strcat
strcpy
strcmp
strlen


La fonction strncmp La fonction strndup