Incrível!
Completion taxa melhorada para 4.35single
Desafio: 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
12string str = "Cpdefinity"; // Cpdefinity str[1] = 'o'; // Codefinity
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
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
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
1str.at(n);
Funciona da mesma forma que str[n], mas irá gerar um erro se você especificar um índice fora do intervalo.
main.cpp
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
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; }
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.
- Dentro de
maskEmail, utilize o métodofindpara localizar a posição do símbolo'@', que indica o final do nome de usuário. - Verifique se o nome de usuário possui mais de 1 caractere. Caso contrário, retorne o e-mail sem alterações.
- Use um laço
forpara iterar do índice 1 até (mas não incluindo) a posição de'@'. - Dentro do laço, substitua cada caractere por
'*'para mascarar o nome de usuário. - Retorne o e-mail modificado.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo