String c ++ começa com

String c ++ começa com
Chega um momento em que o programador precisa saber o que uma string começa com. Esse conhecimento pode ser usado para escolher ou eliminar itens em uma lista de caracteres. Portanto, um programador pode querer saber se uma string começa com um personagem específico ou com uma sub-string específica. Um programador pode escrever um código que verificará os caracteres iniciais de uma string, um por um e comparará isso com uma sub-string de prefixo. No entanto, todas as estratégias envolvidas já foram feitas pela biblioteca de string c ++.

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
  • bool start_with (const gráfico* x) const
  • bool start_with (basic_string_view x) const
  • Conclusão

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_String str = "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_String str = "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; i cout <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; i cout <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; i cout <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