Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Acessando e Manipulando Elementos de String | Tipo de Dado de Texto
Tipos de Dados em C++
close
Seção 3. Capítulo 3
single

single

bookDesafio: Acessando e Manipulando Elementos de String

Deslize para mostrar o menu

Indexação de uma string

É possível acessar os elementos de uma string (que são essencialmente caracteres char) utilizando a indexação com colchetes [], de forma semelhante aos arrays. Isso também permite substituir um caractere em uma posição específica.

indexing.h

indexing.h

copy
12
string str = "Cpdefinity"; // Cpdefinity str[1] = 'o'; // Codefinity
Note
Nota

A indexação em uma string começa do zero, assim como em arrays.

O comprimento da string

Com esse indexamento, é possível tentar acessar um índice incorreto (fora do intervalo), e o compilador não informará nada sobre isso.

main.cpp

main.cpp

copy
1234567
#include <iostream> int main() { std::string word = "Codefinity"; std::cout << word[12]; // Word's length is 10 }

Como pode ser observado, a saída é inesperada e o C++ não fornece um aviso sobre o problema. Para evitar isso, utilize o método .length() para determinar o comprimento de uma string e garantir que o índice esteja dentro do intervalo válido.

main.cpp

main.cpp

copy
123456789101112
#include <iostream> int main() { std::string word = "Codefinity"; int index = 12; if (index >= word.length()) std::cout << "The output is unexpected!" << std::endl; else std::cout << word[index]; // Word's length is 10 }

Indexação usando método

Outra forma de indexação é utilizando o método .at(). Para obter o caractere com índice n, pode-se usar a seguinte sintaxe:

at.h

at.h

copy
1
str.at(n);

Funciona da mesma forma que str[n], mas irá gerar um erro se você especificar um índice fora do intervalo.

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { std::string word = "Codefinity"; std::cout << word.at(12); // word's length is 10 // Try outputting the character with the index 5 }

Prática

Como mencionado anteriormente, podemos substituir os caracteres dentro de uma string utilizando indexação (tanto com [] quanto com .at()). Veja um exemplo:

main.cpp

main.cpp

copy
123456789
#include <iostream> int main() { std::string word = "Cpdefinitu"; word[1] = 'o'; word.at(word.length() - 1) = 'y'; // length - 1 accesses the last element std::cout << word; }
Tarefa

Swipe to start coding

Você tem um endereço de e-mail como uma string. Sua tarefa é mascarar a parte do nome de usuário do e-mail para garantir a privacidade.

A função maskEmail recebe uma string representando o endereço de e-mail.

  1. Dentro de maskEmail, utilize o método find para localizar a posição do símbolo '@', que indica o final do nome de usuário.
  2. Verifique se o nome de usuário possui mais de 1 caractere. Caso contrário, retorne o e-mail sem alterações.
  3. Use um laço for para iterar do índice 1 até (mas não incluindo) a posição de '@'.
  4. Dentro do laço, substitua cada caractere por '*' para mascarar o nome de usuário.
  5. Retorne o e-mail modificado.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt