Comment obtenir une sous-chaîne d'un char *

Comment obtenir une sous-chaîne d'un char *

Obtenir un substrat d'un char * est un sujet simple qui peut être facilement accompli. Cela peut être utilisé pour un large éventail de tâches de programmation telles que le piratage, la rampe Web et la manipulation des cordes. Dans cet article, je discuterai du concept de base et décrirai les étapes nécessaires pour obtenir un substrat d'un char *.

Cependant, avant de progresser vers le processus principal, comprenons d'abord le concept de sous-chaîne.

Qu'est-ce qu'une sous-chaîne

Une substrat n'est qu'une chaîne plus petite du texte principal. Cette plus petite «portion» obtenue doit toujours contenir le caractère ou les caractères d'origine de la chaîne d'origine. Par exemple, si la chaîne d'origine était "Bonjour le monde", puis le sous-chaîne serait "Bonjour" ou "monde" Selon la sortie souhaitée.

Obtenez une sous-chaîne d'un char

Les utilisateurs C peuvent obtenir une sous-chaîne d'un char à travers les fonctions suivantes:

  • fonction strncpy ()
  • Fonction SBSTR ()
  • Fonction memcpy ()

1: Strncpy () Fonction

La première façon d'obtenir un substrat d'un char * est d'utiliser le strncpy () C Fonction de bibliothèque. Il copie un nombre spécifique de caractères d'une chaîne à une autre. Pour transférer une sous-chaîne d'un char * à un tampon fraîchement construit, utilisez cette fonction. Voici un exemple de comment utiliser strncpy ():

Ici, POS désigne le début indice et Len La longueur de la sous-chaîne souhaitée est-elle.

#inclure
#inclure
int main()

int pos, len;
char Str [14] = "ABCDEFGHIJKLM";
Char substring [14];
pos = 6;
len = 5;
printf ("String original est:% s", str);
printf ("\ nSubstring est:");
strncpy (sous-chaîne, str + (POS-1), len);
printf (substring);
retour 0;

Dans cet exemple, sous-chaîne est le tampon de destination, Char Str est la chaîne source et point de point est 6, ce qui signifie que le tranchage des cordes commencera à partir de la 6e position (F) et se termine à la cinquième valeur, qui est J dans le cas. Cela entraînera un sous-chaîne tampon des 50 premiers caractères du char * original copié de.

Sortir

2: fonction substr ()

La deuxième façon d'obtenir un substrat d'un char * est d'utiliser le substr () C Fonction de bibliothèque. Il est utilisé pour extraire une section d'une chaîne en fonction de l'index de départ et du nombre de caractères. Cette fonction peut être utilisée pour renvoyer un pointeur vers la sous-chaîne ou pour modifier la chaîne existante. Un exemple de substr () L'utilisation est la suivante:

#inclure
#inclure
char * substr (const char * src, int m, int n)

int len ​​= n-m;
char * dest = (char *) malloc (sizeof (char) * (len + 1));
pour (int i = m; i
* dest = * (src + i);
dest ++;

* dest = '\ 0';
retour de dest-Len;

int main()

char src [] = "nous extraire la sous-chaîne d'une chaîne";
int m = 6;
int n = 15;
char * dest = substr (src, m, n);
printf ("% s", dest);
retour 0;

Dans ce code, la longueur et l'emplacement du substrat Les tranches sont déterminées dans la méthode définie par l'utilisateur substr (), et la tranche est ensuite placée dans le destruction variable et imprimée dans la fonction principale. Le code ci-dessus sortira la sous-chaîne entre la 6e position (l) et 15 Dès le début, qui est t du "extrait" chaîne. m est le point de départ et n est le point de fin dans ce cas. Sortir:

3: Fonction memcpy ()

La troisième façon d'obtenir un substrat d'un char * est d'utiliser le memcpy () C Fonction de bibliothèque. Il copie plusieurs octets d'un emplacement de mémoire à un autre. Pour transférer une sous-chaîne d'un char * à un tampon fraîchement construit, utilisez cette fonction. Un exemple de memcpy () L'utilisation est la suivante:

#inclure
#inclure
int Main (vide)

char * text = "Ceci est la chaîne complète";
Sous-texte char [7];
memcpy (sous-texte, & text [9], 6);
sous-texte [6] = '\ 0';
printf ("String original:% s \ n", texte);
printf ("substring:% s", sous-texte);
retour 0;

Dans ce code, le texte La chaîne stockée de la variable s'affiche d'abord, puis le memcpy () la méthode est utilisée pour extraire la sous-chaîne, qui a le longueur de 6, le position de 9, et l'original texte chaîne. Le sous-chaîne est ensuite imprimé après avoir été sauvé dans le sous-texte variable.

Sortir

Conclusion

Il existe trois fonctions de base pour obtenir une sous-chaîne d'un charbon dans le langage de programmation C. Les fonctions sont strncpy (), substr () et memcpy (). En copiant une certaine quantité de caractères d'une chaîne à une autre, vous pouvez utiliser le strncpy () fonction. Pour extraire une partie de la chaîne, vous pouvez accompagner le fonction substr (). Tandis que vous pouvez utiliser le memcpy () fonction, qui transfère un certain nombre d'octets d'une adresse de mémoire à une autre et peut donc être efficace pour obtenir une chaîne de char.