Namespaces
Variants

std:: strncmp

From cppreference.net
Défini dans l'en-tête <cstring>
int strncmp ( const char * lhs, const char * rhs, std:: size_t count ) ;

Compare au maximum count caractères de deux tableaux potentiellement terminés par un caractère nul. La comparaison est effectuée de manière lexicographique. Les caractères suivant le caractère nul ne sont pas comparés.

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 tableaux comparés.

Le comportement est indéfini lorsque l'accès se produit au-delà de la fin de l'un ou l'autre tableau lhs ou rhs . Le comportement est indéfini lorsque l'un ou l'autre lhs ou rhs est le pointeur nul.

Table des matières

Paramètres

lhs, rhs - pointeurs vers les tableaux potentiellement terminés par un caractère nul à comparer
count - nombre maximum de caractères à 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, ou si count est zéro.

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 à std::strcoll et std::strxfrm .

Exemple

#include <cstring>
#include <iostream>
void demo(const char* lhs, const char* rhs, int sz)
{
    const int rc = std::strncmp(lhs, rhs, sz);
    if (rc < 0)
        std::cout << "First " << sz << " chars of ["
                  << lhs << "] precede [" << rhs << "]\n";
    else if (rc > 0)
        std::cout << "First " << sz << " chars of ["
                  << lhs << "] follow [" << rhs << "]\n";
    else
        std::cout << "First " << sz << " chars of ["
                  << lhs << "] equal [" << rhs << "]\n";
}
int main()
{
    demo("Hello, world!", "Hello, everybody!", 13);
    demo("Hello, everybody!", "Hello, world!", 13);
    demo("Hello, everybody!", "Hello, world!", 7);
    demo("Hello, everybody!" + 12, "Hello, somebody!" + 11, 5);
}

Sortie :

First 13 chars of [Hello, world!] follow [Hello, everybody!]
First 13 chars of [Hello, everybody!] precede [Hello, world!]
First 7 chars of [Hello, everybody!] equal [Hello, world!]
First 5 chars of [body!] equal [body!]

Voir aussi

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