Comment obtenir une sous-chaîne en C

Satishkumar Bharadwaj 12 octobre 2023
  1. Fonction memcpy() pour obtenir une sous-chaîne de caractères en C
  2. Fonction strncpy() pour obtenir une sous-chaîne en C
Comment obtenir une sous-chaîne en C

Ce tutoriel présente la façon d’obtenir une sous-chaîne de caractères à partir de la valeur du caractère en C. Il existe différentes méthodes pour obtenir une sous-chaîne de caractères comme memcpy() et strncpy().

Fonction memcpy() pour obtenir une sous-chaîne de caractères en C

La fonction memcpy() copie le nombre de caractères de la source vers la zone mémoire de la destination. Cette fonction est disponible dans le fichier d’en-tête <string.h>.

Cette fonction crée un problème lorsque les adresses de la source et de la destination se chevauchent. Cette fonction ne vérifie pas si une adresse est nulle ou si le débordement se produit ou non.

La fonction memcpy() retourne un pointeur vers la chaîne de destination. Il n’y a pas de valeur de retour pour afficher une erreur.

Syntaxe de memcpy()

void *memcpy(void *destination_string, const void *source_string,
             size_t number);
  • *destination_string est un pointeur vers la chaîne de destination.
  • *source_string est un pointeur vers un tableau de valeurs de type caractère original.
  • number est le nombre de caractères.
#include <stdio.h>
#include <string.h>

int main(void) {
  char *text = "The test string is here";
  char subtext[7];

  memcpy(subtext, &text[9], 6);
  subtext[6] = '\0';
  printf("The original string is: %s\n", text);
  printf("Substring is: %s", subtext);

  return 0;
}

Production :

The original string is: The test string is here
Substring is: string

Fonction strncpy() pour obtenir une sous-chaîne en C

La fonction strncpy() est la même que la fonction strcpy(). La seule différence est que la fonction strncpy() copie le nombre de caractères donné de la chaîne source à la chaîne de destination. La fonction strncpy() est disponible dans le fichier d’en-tête <string.h>.

Cette fonction retourne un pointeur vers la chaîne de destination après avoir copié la chaîne source.

Syntaxe de strncpy()

void *strncpy(void *destination_string, const void *source_string,
              size_t number);
  • *destination_string est un pointeur vers la chaîne de destination.
  • *source_string est un pointeur vers un tableau de valeurs de char original.
  • number est le nombre de caractères.

Si la fonction strncpy() rencontre un caractère nul dans la source_string, la fonction ajoutera des caractères nuls à la destination_string.

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

int main(void) {
  char *text = "The test string is here";
  char subtext[7];

  strncpy(subtext, &text[9], 6);
  subtext[6] = '\0';
  printf("The original string is: %s\n", text);
  printf("Substring is: %s", subtext);

  return 0;
}

Production :

The original string is: The test string is here
Substring is: string

Article connexe - C Char

Article connexe - C String