Namespaces
Variants

std::ctype <char> :: scan_is

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

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

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 situé juste après la fin du tableau de caractères à rechercher

Valeur de retour

Pointeur vers le premier caractère dans [ beg , end ) qui satisfait le masque, ou end si aucun caractère correspondant 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()
{
    std::locale loc("");
    auto& f = std::use_facet<std::ctype<char>>(loc);
    // ignorer jusqu'à la première lettre
    char s1[] = "      \t\t\n  Test";
    const char* p1 = f.scan_is(std::ctype_base::alpha, std::begin(s1), std::end(s1));
    std::cout << '\'' << p1 << "'\n";
    // ignorer jusqu'à la première lettre
    char s2[] = "123456789abcd";
    const char* p2 = f.scan_is(std::ctype_base::alpha, std::begin(s2), std::end(s2));
    std::cout << '\'' << p2 << "'\n";
}

Sortie :

'Test'
'abcd'

Voir aussi

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