Namespaces
Variants

std::ctype <char> :: scan_not

From cppreference.net
Défini dans l'en-tête <locale>
const char * scan_not ( mask m, const char * beg, const char * end ) const ;

Localise le premier caractère dans le tableau de caractères [ beg , end ) qui ne satisfait pas au masque de classification m , c'est-à-dire le premier caractère c tel que table ( ) [ ( unsigned char ) c ] & m renverrait false .

Si ( unsigned char ) c >= std:: ctype < char > :: table_size , alors une valeur définie par l'implémentation est substituée à la place de table ( ) [ ( unsigned char ) c ] , potentiellement différente pour différentes valeurs de c .

Table des matières

Paramètres

m - masque à rechercher
beg - pointeur vers le premier caractère dans un tableau de caractères à rechercher
end - pointeur juste après la fin du tableau de caractères à rechercher

Valeur de retour

Pointeur vers le premier caractère dans [ beg , end ) qui ne satisfait pas le masque, ou end si aucun caractère de ce type n'a été trouvé.

Notes

Contrairement au modèle principal std:: ctype , cette spécialisation n'effectue pas d'appel de fonction virtuelle lors de la classification des caractères. Pour personnaliser le comportement, une classe dérivée peut fournir une table de classification non par défaut au constructeur de la classe de base.

Exemple

#include <iostream>
#include <iterator>
#include <locale>
int main()
{
    auto& f = std::use_facet<std::ctype<char>>(std::locale());
    // ignorer les espaces blancs en tête
    char s1[] = "      \t\t\n  Test";
    const char* p1 = f.scan_not(std::ctype_base::space, std::begin(s1), std::end(s1));
    std::cout << '\'' << p1 << "'\n";
    // ignorer les chiffres en tête
    char s2[] = "123456789abcd";
    const char* p2 = f.scan_not(std::ctype_base::digit, std::begin(s2), std::end(s2));
    std::cout << '\'' << p2 << "'\n";
}

Sortie :

'Test'
'abcd'

Voir aussi

[virtual]
localise le premier caractère d'une séquence qui ne correspond pas à la classification donnée
(fonction membre protégée virtuelle de std::ctype<CharT> )
localise le premier caractère d'une séquence qui correspond à la classification donnée, en utilisant la table de classification
(fonction membre publique)