Déterminer si une chaîne de caractères est contenue dans une autre et à quelle position

Problème

Vous voulez savoir si une chaîne de caractères est contenue dans une autre et à quelle position.

Solution

Utilisez strstr().

Discussion

Dans la plupart des cas, strstr() convient pour trouver une aiguille dans une botte de caractères. Cependant, suivant vos besoins, plusieurs variantes peuvent se révéler plus adaptées :

Variantes de strstr()

strcasestr()

Recherche une chaîne de caractères dans une autre sans tenir compte de la casse.

strnstr() et g_strstr_len()

Recherche une chaîne de caractères dans une autre entre le début et le énième caractère fourni en argument. strnstr() n’est pas standard et g_strstr_len() est une fonction de glib. Notez que strnstr() n’est pas portable.

g_strrstr()

Recherche une chaîne de caractères dans une autre en partant de la fin. g_strrstr() est une fonction de glib.

g_strrstr_len()

Recherche une chaîne de caractères dans une autre en partant du énième caractère spécifié en argument. g_strrstr_len() est une fonction de glib.

g_str_has_prefix()

Regarde si le début d’une chaîne est égal à l’autre. g_str_has_prefix() est une fonction de glib. Nous pouvons facilement coder cette fonction ainsi : strncmp(a,b,strlen(b)) avec une baisse insignifiante de performances. 

g_str_has_suffix()

Regarde...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Remplacer une sous-chaîne par une autre sous-chaîne dans une chaîne de caractères
Suivant
Déterminer si une chaîne de caractères correspond au motif précisé dans une expression régulière