Namespaces
Variants

strcmp

From cppreference.net
< c ‎ | string ‎ | byte
Défini dans l'en-tête <string.h>
int strcmp ( const char * lhs, const char * rhs ) ;

Compare deux chaînes d'octets terminées par un caractère nul de manière lexicographique.

Le signe du résultat est le signe de la différence entre les valeurs de la première paire de caractères (tous deux interprétés comme unsigned char ) qui diffèrent dans les chaînes comparées.

Le comportement n'est pas défini si lhs ou rhs ne sont pas des pointeurs vers des chaînes d'octets terminées par un caractère nul.

Table des matières

Paramètres

lhs, rhs - pointeurs vers les chaînes d'octets terminées par un caractère nul à comparer

Valeur de retour

Valeur négative si lhs apparaît avant rhs dans l'ordre lexicographique.

Zéro si lhs et rhs sont égaux.

Valeur positive si lhs apparaît après rhs dans l'ordre lexicographique.

Notes

Cette fonction n'est pas sensible aux paramètres régionaux, contrairement à strcoll et strxfrm .

Exemple

#include <stdio.h>
#include <string.h>
void demo(const char* lhs, const char* rhs)
{
    const int rc = strcmp(lhs, rhs);
    const char* rel = rc < 0 ? "precedes" : rc > 0 ? "follows" : "equals";
    printf("[%s] %s [%s]\n", lhs, rel, rhs);
}
int main(void)
{
    const char* string = "Hello World!";
    demo(string, "Hello!");
    demo(string, "Hello");
    demo(string, "Hello there");
    demo("Hello, everybody!" + 12, "Hello, somebody!" + 11);
}

Sortie :

[Hello World!] precedes [Hello!]
[Hello World!] follows [Hello]
[Hello World!] precedes [Hello there]
[body!] equals [body!]

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.24.4.2 La fonction strcmp (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.24.4.2 La fonction strcmp (p: TBD)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.24.4.2 Fonction strcmp (p: 365-366)
  • Norme C99 (ISO/IEC 9899:1999) :
  • 7.21.4.2 La fonction strcmp (p: 328-329)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 4.11.4.2 La fonction strcmp

Voir aussi

compare un certain nombre de caractères de deux chaînes
(fonction)
(C95)
compare deux chaînes larges
(fonction)
compare deux tampons
(fonction)
compare deux chaînes conformément à la locale actuelle
(fonction)