A classe C ++ String da biblioteca de string tem a função de membro, start_with (). Isso faz o trabalho para o programador, mas o programador precisa saber como usar a função. E é por isso que este tutorial está sendo produzido. Existem três variantes da função de membro string start_with (). Variantes da mesma função são chamadas funções sobrecarregadas.
A abordagem básica para a função de membro start_with () é comparar uma curta sub-string independente com o primeiro segmento curto da string em questão. Se eles são iguais, então a função retorna verdadeira. Se eles são diferentes, a função retorna falsa.
CUIDADO: A função do membro start_with () é um recurso C ++ 20. Neste artigo, estamos hoje em 2021, para que seu compilador não possa compilar com sucesso as amostras de código.
Conteúdo do artigo
bool start_with (gráfico x) const
Esta função de membro verifica se a string literal começa com um personagem específico. Lembre -se de que a string literal deve ser de um objeto instanciado da classe String. O programa a seguir verifica se a string começa com 'W' na maçaneta:
#incluir
#incluir
usando namespace std;
int main ()
Basic_string str = "Estamos seguindo em.";
bool bl = str.start_with ('w');
cout <retornar 0;
A saída deve ser 1, para verdadeiro.
A correspondência é sensível ao maiúsculas. Portanto, a saída do programa a seguir deve ser falsa:
#incluir
#incluir
usando namespace std;
int main ()
Basic_Stringstr = "Estamos seguindo em frente.";
bool bl = str.start_with ('w');
cout <retornar 0;
A saída deve ser 0 para falsa.
Uma string também pode começar com um caráter não alfabético. O programa a seguir verifica se a string começa com '[':
#incluir
#incluir
usando namespace std;
int main ()
Basic_Stringstr = "[Nota: Nota Informações - - -. - nota final] ";
bool bl = str.começa com('[');
cout <retornar 0;
A saída deve ser 1, para verdadeiro
bool start_with (const gráfico* x) const
O programador pode querer saber se uma série de interesse começa com uma sub-string independente específica. Nesse caso, ele tem que usar esta função de membro. O programa a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
Basic_string str = "Estamos seguindo em.";
const char* ss = "nós somos";
bool bl = str.start_with (ss);
cout <retornar 0;
A saída deve ser 1 para verdadeira.
A correspondência é sensível ao minúsculo. Portanto, a saída do programa a seguir, onde a sub-string independente tem mais de um personagem, deve ser falsa:
#incluir
#incluir
usando namespace std;
int main ()
Basic_Stringstr = "Estamos seguindo em frente.";
const char* ss = "nós somos";
bool bl = str.start_with (ss);
cout <retornar 0;
A saída deve ser 0 para falsa.
Uma string também pode começar com caracteres não alfabéticos. O programa a seguir verifica se a string começa com uma sub-string específica de números:
#incluir
#incluir
usando namespace std;
int main ()
Basic_Stringstr = "8762HT é um número de código.";
const char* ss = "8762";
bool bl = str.start_with (ss);
cout <retornar 0;
A saída deve ser 1, para verdadeiro.
bool start_with (basic_string_view x) const
Visualização da string
O argumento para a função start_with membro pode ser um objeto String_view. A próxima pergunta é: “O que é um string_view?”. A String_view é um intervalo de alguma string original que se torna a lista de um novo objeto de string. Os caracteres não são copiados da string original; Eles são referenciados. Ou seja, os elementos da string original não são copiados; Eles são referenciados. No entanto, essa visão de string tem muitas das funções que a classe String tem. O String_View também é uma classe da qual os objetos String_View são criados. O programa a seguir mostra a semelhança de uma classe String_view e uma string:
#incluir
#incluir
usando namespace std;
int main ()
const char* str = "Tudo o que sobe deve descer.";
string_view strv (str, 23);
para (int i = 0; icout < cout < retornar 0;
A saída é:
Tudo o que sobe
A biblioteca string_view teve que ser incluída. Observe que na declaração, String_view e não Basic_string_view foram usados. Os 23 primeiros caracteres da string original se tornaram os caracteres do String_view. A declaração do programa para a construção do objeto String_view é:
string_view strv (str, 23);
Se um caractere no intervalo da string original for alterado, a visualização da string também será alterada. O programa a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
char str [] = "Tudo o que sobe deve descer.";
string_view strv (str, 23);
str [1] = 'a'; str [2] = 'r'; str [3] = 'l';
para (int i = 0; icout < cout < retornar 0;
A saída é:
Equipeu que sobe
O primeiro, segundo e terceiro caracteres da string original foram alterados depois que o objeto String_view foi declarado. Isso confirma que, embora o string_view seja um objeto, ele referencia um intervalo na string original e não possui uma cópia do intervalo.
O texto da string original pode ser constante. Para conseguir isso, use um ponteiro const para char em vez de uma variedade de cargas. O programa a seguir não compila, emitindo uma mensagem de erro porque o texto da string original foi constante:
#incluir
#incluir
usando namespace std;
int main ()
const char* str = "Tudo o que sobe deve descer.";
string_view strv (str, 23);
str [1] = 'a'; str [2] = 'r'; str [3] = 'l';
para (int i = 0; icout < cout < retornar 0;
Argumento de visualização da string
A sintaxe para a função string_starts () é:
bool start_with (Basic_string_viewx) const
Como criar um objeto String_view foi ilustrado acima. Depois de criar o objeto, passe -o como um argumento para a função de membro string start_with (). O programa a seguir ilustra o seguinte:
#incluir
#incluir
#incluir
usando namespace std;
int main ()
const char* str = "Tudo o que sobe deve descer.";
string_view strv (str, 23);
const char* ss = "tudo";
bool bl = str.start_with (ss);
cout <retornar 0;
A saída deve ser verdadeira, para 1. Desta vez, as bibliotecas String e String_View foram incluídas.
Se o programador quiser alterar a string original, ele terá que usar uma matriz de chars como um argumento para o construtor String_view em vez de um ponteiro constante para char. O programa a seguir mostra a situação, como a string original mudará:
#incluir
#incluir
#incluir
usando namespace std;
int main ()
char str [] = "Tudo o que sobe deve descer.";
string_view strv (str, 23);
str [5] = 'a'; str [6] = 'r'; str [7] = 'l'; str [8] = 'r'; str [9] = 'l';
const char* ss = "EveryApple";
bool bl = str.start_with (ss);
cout <retornar 0;
A saída deve ser 1, para verdadeiro.
Mesmo que o argumento da função de membro start_with () seja um objeto String_view, a carcaça ainda é respeitada. O programa a seguir ilustra o seguinte:
#incluir
#incluir
#incluir
usando namespace std;
int main ()
char str [] = "Tudo o que sobe deve descer.";
string_view strv (str, 23);
const char* ss = "tudo";
bool bl = str.start_with (ss);
cout <retornar 0;
A saída deve ser 0 para falsa. O primeiro 'e' na sub-cordão está em minúsculas, enquanto o primeiro 'e' na série de interesse está em maiúsculas.
Se o argumento para a função de membro start_with () for um string_view, os caracteres não alfabetos ainda poderão fazer parte de strings. No programa a seguir, um conjunto de caracteres inteiros consecutivos é verificado se eles iniciam a sequência de interesse, onde o argumento start_with () é um string_view:
#incluir
#incluir
#incluir
usando namespace std;
int main ()
const char* str = "8762ht é um número de código.";
string_view strv (str);
const char* ss = "8762";
bool bl = str.start_with (ss);
cout <retornar 0;
A saída deve ser 1 para verdadeira.
Conclusão
A classe String em C ++ tem uma função de membro chamada start_with (). Ele verifica se uma string sub-independente, forma os primeiros caracteres de uma série de interesse (prefixo). As funções de membros sobrecarregadas são iniciações_with (gráfico x), start_with (const gráfico* x) e start_with (string_view x). Cada um retorna um bool.
Chrys