Función Find_first_not_of () y función find_last_not_of () en una cadena C ++

Función Find_first_not_of () y función find_last_not_of () en una cadena C ++

 

Función Find_first_not_of () y función find_last_not_of () en una cadena C ++

Antes de aprender estas dos funciones, se recomienda aprender la función find_first_of () y la función find_last_of () en una cadena de C ++ .

1, función find_first_not_of ()

Busque hacia adelante el primer carácter de la cadena original que no coincida con ningún carácter de la cadena especificada (o carácter) y devuelva su posición. Si la búsqueda falla, se devuelve npos. (Npos se define como un valor que se garantiza que es mayor que cualquier subíndice válido).

  • string str = "abcdefab";
  • cout << str.find_first_not_of ('h') << endl; // El segundo parámetro es 0, el valor predeterminado es comenzar la búsqueda desde el subíndice de cadena original 0. La primera a es diferente del carácter de búsqueda, por lo que se genera el subíndice 0 de a.
  • cout << str.find_first_not_of ("twj", 1) << endl; // Inicie la búsqueda desde el subíndice 1, y la primera b es diferente de cualquier carácter de la subcadena que se va a comprobar, por lo que se genera el subíndice 1 de b.

2, función find_last_not_of ()

Busque hacia adelante el último carácter de la cadena original que no coincida con ningún carácter de la cadena especificada (o carácter) y devuelva su posición. Si la búsqueda falla, se devuelve npos. (Npos se define como un valor que se garantiza que es mayor que cualquier subíndice válido).

  • string str = "abcdefab";

  • cout << str.find_last_not_of ('h') << endl; // El segundo parámetro es 0, el valor predeterminado es buscar hacia atrás desde npos. El penúltimo carácter byh de la cadena original son diferentes, por lo que se emite la pequeña marca 7 de b.

  • cout << str.find_last_not_of ("ab", 6) << endl; // Inicie la consulta inversa desde el subíndice de cadena original como 6, la primera a es la misma que el carácter a en la cadena que se buscará, y no coincide, así que continúe al revés Comparar. f es diferente de cualquier carácter de la subcadena que se va a verificar, por lo que se genera el subíndice 5 de f.

Código:

#include<iostream>
using namespace std;
int main()
{
    string str="abcdefab";
    cout<<str.find_first_not_of('h')<<endl;//第二个参数为0,默认从原串下标为0开始查找。第一个a就和带查字符不同,故输出a的下标0。
    cout<<str.find_first_not_of("twj",1)<<endl;//从下标为1开始查,第一个b就和待查子串任一字符不同,故输出b的下标1。
    cout<<str.find_first_not_of("wbj",1)<<endl;//从下标为1开始,第一个b与待查子串中的b一样,故b不符合,继续c再和子串任一字符比较,结果都不同,故输出c的下标2。
    cout<<str.find_first_not_of("abcdefg")<<endl;//原串任一字符都出现在子串中,故找不到,返回npos。
    cout<<str.find_last_not_of('h')<<endl;//第二个参数为0,默认从npos逆向查。原串倒数第一个字符b和h就不同,故输出b的小标7。
    cout<<str.find_last_not_of("ab",6)<<endl;//从原串下标为6开始逆向查询,第一个a和待查串中的字符a相同,不符合,故继续逆向比较。f和待查子串任一字符不同,故输出f的下标5。
    cout<<str.find_last_not_of("abcdefhu")<<endl;//原串任一字符都出现在子串中,故找不到,返回npos。
    return 0;
}

//有效的下标应该在0~len-1范围内。len=str.size();

Resultados de ejecución: función
Inserte la descripción de la imagen aquí
find_first_not_of () y función find_last_not_of () en cadena C ++ y función find_first_of () y función find_last_of () en cadena C ++. Son muy similares, solo se puede decir que el nombre no es diferente. Todos pueden considerarse como comparaciones de personaje a personaje, coincidencias parciales. Las funciones find () y rfind () en la cadena C ++ coinciden exactamente. Si la subcadena que se va a verificar es una cadena en lugar de un carácter, se puede decir que es una comparación entre una cadena y una cadena.

 

Supongo que te gusta

Origin blog.csdn.net/digitalkee/article/details/108695727
Recomendado
Clasificación