Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Challenge: Acceso y Manipulación de Elementos de Cadena | Tipo de Dato de Texto
Tipos de Datos en C++
Sección 3. Capítulo 3
single

single

bookChallenge: Acceso y Manipulación de Elementos de Cadena

Desliza para mostrar el menú

Indexación de una cadena

Se puede acceder a los elementos de un string (que son esencialmente caracteres char) utilizando la indexación con corchetes [], de manera similar a los arreglos. Esto también permite reemplazar un carácter en una posición específica.

indexing.h

indexing.h

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

La indexación en un string comienza desde cero, igual que en los arreglos.

La longitud de la cadena

Con ese indexado, puedes intentar acceder a un índice incorrecto (fuera de rango), y el compilador no te informará sobre ello.

main.cpp

main.cpp

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

Como puedes ver, la salida es inesperada y C++ no proporciona una advertencia sobre el problema. Para evitar esto, puedes usar el método .length() para determinar la longitud de un string y asegurarte de que el índice esté dentro del rango 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 }

Indexación usando método

Otra forma de indexar es utilizando el método .at(). Para obtener el carácter con el índice n, se puede usar la siguiente sintaxis:

at.h

at.h

copy
1
str.at(n);

Funciona igual que str[n], pero generará un error si se especifica un índice fuera de rango.

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áctica

Como se mencionó antes, es posible reemplazar los caracteres dentro de una cadena utilizando la indexación (tanto con [] como con .at()). Aquí tienes un ejemplo:

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; }
Tarea

Desliza para comenzar a programar

Tienes una dirección de correo electrónico como una cadena de texto. Tu tarea es enmascarar la parte del nombre de usuario del correo para proteger la privacidad.

La función maskEmail recibe una cadena de texto que representa la dirección de correo electrónico.

  1. Dentro de maskEmail, utiliza el método find para localizar la posición del símbolo '@', que marca el final del nombre de usuario.
  2. Verifica si el nombre de usuario tiene más de 1 carácter. Si no es así, devuelve el correo sin cambios.
  3. Usa un ciclo for para iterar desde el índice 1 hasta (pero sin incluir) la posición de '@'.
  4. Dentro del ciclo, reemplaza cada carácter por '*' para enmascarar el nombre de usuario.
  5. Devuelve el correo modificado.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

some-alt