E mais 2 exemplos de códigos prontos como implementação.
std::string_view é uma classe de nome basic_string_view que utiliza char e std::char_traits , ambos como template.
Ela está disponível somente a partir do C++17 e precisa incluir o cabeçalho string_view . Pode ser implementada também para letras acentudas(std::wstring_view), unicode 8(std::u8string_view), 16(std::u16string_view, C++20) e 32(std::u32string_view) .
Ela praticamente cria um vector de caracteres para uma string .
Cada caractere é um índice:
T
e
r
m
i
n
a
l
R
o
o
t
0
1
2
3
4
5
6
7
8
9
10
11
12
É muito utilizada em códigos que fazem parser.
Vamos ver 10 exemplos de utilizá-la!
01. Uso básico, declarando, inicializando e imprimindo uma string_view
02. Imprimir somente o 4º(quarto caractere)
03. Obter o tamanho da string_view
04. Imprimir o último caractere
05. Saber a posição do caractere 'i'
06. Saber a posição de trás para frente
Seria o 1º ‘o’ de trás para frente, o find() daria 10 . Outra observação é se você informar um caractere que não existe, dará garbage(string::npos, um número esquisito).
07. Verificar se existe o caractere 'X'
08. Imprimir do 9º ao 13º caractere
09. Remover os 4 últimos caracteres
10. Remover os 8 primeiros caracteres
Bônus
É possível também usar string_view_literals adicionando o termo sv ao final, exemplo de código com literal:
Exemplo de um código pronto:
Saída:
Algumas outras funções só estão disponíveis no C++20 ou C++23, exemplos: contains(), starts_with() e outros.
Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!