Biblioteca C ++ Locale - scan_not

Descrição

Ele retorna o primeiro caractere que não está na categoria e retorna o primeiro caractere no intervalo [baixo, alto) que não se classifica em nenhuma das categorias especificadas em m. Se nenhum caractere for encontrado no intervalo, alto será retornado.

Declaração

A seguir está a declaração para std :: ctype :: scan_not.

C ++ 98

const char_type* scan_not (mask m, const char_type* low, const char_type* high) const;

C ++ 11

const char_type* scan_not (mask m, const char_type* low, const char_type* high) const;

Parâmetros

  • m - É uma máscara de bits de máscara de tipo de membro.

  • low,high - É um ponteiro para o início e o fim da sequência de caracteres.

Valor de retorno

Ele retorna um ponteiro para o primeiro elemento no intervalo que classifica, ou alto se nenhum for encontrado.

Exceções

Strong guarantee - se uma exceção é lançada, não há efeitos.

Corridas de dados

O objeto e os elementos no intervalo [baixo, alto) são acessados.

Exemplo

No exemplo a seguir, explica sobre std :: ctype :: scan_not.

#include <iostream>
#include <locale>

int main () {
   std::locale loc;

   const char period[] = "june2018";

   const char * p = std::use_facet< std::ctype<char> >(loc).scan_not 
      ( std::ctype<char>::alpha, period, period+12 );

   std::cout << "The first non-alphabetic character is: " << *p << '\n';

   return 0;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

The first non-alphabetic character is: 2