Em C ++ find_first_of, como diz respeito a uma string de destino, significa: encontre a primeira ocorrência de uma sequência de caracteres, na sequência de destino. Uma sub-fita particular pode ocorrer mais de uma vez. Então, o trabalho do função find_first_of () é encontrar a primeira ocorrência dessa sub-string específica na string de destino.
Considere a string,
"É que nunca diz nunca mais."
O primeiro personagem, 'i' está no índice zero. O segundo, 't' está no índice 1; O terceiro, que é um espaço, está no índice 2; O quarto, 'i' está no índice 3; e assim por diante. "Nunca" ocorre duas vezes na liteal da corda. 'n' para o primeiro "nunca" ocorre no índice 11. 'n' para o segundo “nunca” ocorre em um índice mais alto. Então, a primeira ocorrência de "nunca" começa no índice 11.
A string acima deve ser a lista de um objeto String construído a partir de uma classe de string. Um programa C ++ para usar a função C ++ find_first_of () deve começar com:
#incluir
#incluir
usando namespace std;
A biblioteca de string está incluída. find_first_of () é uma função de membro da classe String. Todo o código para a string deste artigo é feito na função principal ().
Existem cinco variantes do função find_first_of (). Quando há mais de uma variante de uma função, diz -se que a função está sobrecarregada. Este artigo explica como usar o sobrecarregado FEND_FIRST_OF () FUNÇÕES DE MEMBRO.
size_type find_first_of (gráfico c, size_type pos = 0)
Esta função retorna o índice da primeira ocorrência de um personagem específico (sub-string de um caractere) na string de destino. O primeiro parâmetro refere -se ao personagem. O segundo parâmetro indica que a pesquisa começa no índice 0 (padrão). A construção (instanciação) do objeto de sequência de destino pode ser:
string str = "É que nunca mais dizia.";
Deixe o personagem ser pesquisado, seja 'n'. 'n' ocorre mais de uma vez. Nesse caso, a posição retornada é 11, pois o primeiro 'n' está no índice 11.
O código a seguir ilustra o uso desta função, onde o argumento do primeiro parâmetro é um identificador:
string str = "É que nunca mais dizia.";
char ss = 'n';
int i = str.find_first_of (ss);
cout << i << endl;
A saída é 11.
O segundo parâmetro, “size_type pos = 0” na função significa que a pesquisa começa de zero. Se a pesquisa começar de um índice após o primeiro 'n', então o índice do segundo 'n' teria sido devolvido. O programa a seguir ilustra isso com o primeiro argumento sendo um literal.
#incluir
#incluir
usando namespace std;
int main ()
string str = "É que nunca mais dizia.";
int i = str.find_first_of ('n', 17);
cout << i << endl;
retornar 0;
A saída é 21.
size_type find_first_of (const Chart* s, size_type pos = 0)
Esta função retorna o índice para o primeiro caractere da primeira ocorrência de uma sub-string específica (sequência de caracteres) na string de destino. O primeiro parâmetro refere-se a um ponteiro constante da sequência de caracteres (sub-string). O segundo parâmetro indica que a pesquisa começa no índice 0 (padrão, quando o parâmetro está ausente). A saída do programa a seguir é 11, com a pesquisa começando de zero:
#incluir
#incluir
usando namespace std;
int main ()
string str = "É que nunca mais dizia.";
const char* ss = "nunca";
int i = str.find_first_of (ss);
cout << i << endl;
retornar 0;
size_type find_first_of (const t & t, size_type pos = 0)
Esta função retorna o índice para o primeiro caractere da primeira ocorrência de uma sub-string específica (sequência de caracteres), na string de destino. O primeiro parâmetro refere-se a uma variedade de cargas. O segundo parâmetro indica que a pesquisa começa no índice 0 por padrão. A saída do programa a seguir é 11, com a pesquisa começando de zero:
#incluir
#incluir
usando namespace std;
int main ()
string str = "É que nunca mais dizia.";
char ss [] = "nunca";
int i = str.find_first_of (ss);
cout << i << endl;
retornar 0;
A saída é 11. A declaração,
char ss [] = "nunca";
poderia muito bem ter sido,
char ss [] = 'n', 'e', 'v', 'e', 'r', '\ 0';
Observe o caráter nu, '\ 0' e sua posição. O literal, 'n', 'e', 'v', 'e', 'r', '\ 0' pode ser usado no código no lugar do identificador SS, como no programa a seguir:
#incluir
#incluir
usando namespace std;
int main ()
string str = "É que nunca mais dizia.";
int i = str.find_first_of ('n', 'e', 'v', 'e', 'r', '\ 0');
cout << i << endl;
retornar 0;
A saída ainda é 11, como deveria.
size_type find_first_of (const Basic_string & str, size_type pos = 0)
Esta função é semelhante ao acima, mas o primeiro argumento é um objeto de string construído a partir da classe String. No programa a seguir, o primeiro argumento é o identificador de um objeto String construído a partir da classe String (a pesquisa começa em zero):
#incluir
#incluir
usando namespace std;
int main ()
string str = "É que nunca mais dizia.";
string ss = "nunca";
int i = str.find_first_of (ss);
cout << i << endl;
retornar 0;
A saída é 11. O argumento poderia ter sido a construção de cordas, eu.e. String ("nunca") como em:
#incluir
#incluir
usando namespace std;
int main ()
string str = "É que nunca mais dizia.";
int i = str.find_first_of (string ("nunca"));
cout << i << endl;
retornar 0;
A saída é 11 aqui. Lembre -se de que um objeto de string ainda pode ser construído da seguinte maneira:
string ss = "nunca";
Portanto, para esta função, o primeiro argumento ainda pode ser um literal de cordas, como no programa a seguir:
#incluir
#incluir
usando namespace std;
int main ()
string str = "É que nunca mais dizia.";
int i = str.find_first_of ("nunca");
cout << i << endl;
retornar 0;
A saída é 11.
size_type find_first_of (const Chart* s, size_type pos, size_type n)
Esta função é semelhante ao acima. Se o terceiro argumento for menor ou igual ao tamanho da sub-string, mas maior que 0, a função retorna o número esperado. O código a seguir demonstra o uso do terceiro argumento:
#incluir
#incluir
usando namespace std;
int main ()
string str = "É que nunca mais dizia.";
int i = str.find_first_of ("nunca", 17, 4);
cout << i << endl;
retornar 0;
A saída é 21.
Sequência não encontrada
E se a sub-cordão não for encontrada? Considere o seguinte programa:
#incluir
#incluir
usando namespace std;
int main ()
string str = "É que nunca mais dizia.";
int i = str.find_first_of ("bcdfu");
cout << i << endl;
retornar 0;
A saída é -1. Se a sequência (sub -string) não tiver caráter na sequência de destino, o valor de retorno da função é -1. Se a sequência for a string vazia, o valor de retorno ainda será -1.
Considere a sequência,
"Uehydyw"
E a corda de destino,
“É que nunca diz nunca mais.”
'H' na sub-string, é o primeiro caractere na sub-string que ocorre primeiro na string de destino. Ocorre no índice 7 na sequência de destino.
Portanto, o índice que é retornado da sequência de destino é o primeiro caractere da sub-string que corresponde à primeira ocorrência de si mesma na string de destino. O programa a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
string str = "É que nunca mais dizia.";
int i = str.find_first_of ("uehydyw");
cout << i << endl;
retornar 0;
A saída é 7.
E se a sequência de caracteres for mais longa que a string de destino? Considere o seguinte programa:
#incluir
#incluir
usando namespace std;
int main ()
string str = "abcde";
int i = str.find_first_of ("abcdefghijk");
cout << i << endl;
retornar 0;
A saída é 0. Isso ocorre porque a sequência de destino é na verdade a primeira sequência de caracteres da sequência (sub-string). E se a sequência fosse mais longa que a string de destino e não existe caráter da sequência na sequência de alvo? Considere o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
string str = "abcde";
int i = str.find_first_of ("fghijklmnop");
cout << i << endl;
retornar 0;
A saída é -1, ainda em conformidade com o fato de que, se a sequência não for encontrada na sequência de destino, o valor de retorno da função seria -1.
Conclusão
find_first_of () é uma função de membro da classe String. Ele retorna o índice da primeira ocorrência de uma sequência de caracteres encontrados em uma string de destino. A contagem de índice começa de 0. Esta sequência pode ser chamada de sub-cordão. Se uma sequência não for encontrada, -1 será retornado. O find_first_of () A função de membro está sobrecarregada de cinco maneiras. As diferentes funções sobrecarregadas levam diferentes formatos de sequência de personagens. Para todas essas funções sobrecarregadas, pesquisar o começo de 0 é o padrão. No entanto, cada um tem um argumento que pode permitir que a pesquisa seja iniciada em qualquer índice à frente.