sábado, 6 de junio de 2026

Insertar un carácter en una posición específica de una cadena en C++

Código del ejercicio:

#include <iostream>
#include <clocale>
#include <string>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");
    string frase, aux = "";
    char x;
    int p, i = 0;
    cout<<"Ingresar frase: "; getline(cin, frase);
    cout<<"Ingresar carácter a insertar: "; cin>>x;
    cout<<"Ingresar posición a insertar: "; cin>>p;
    while(i < frase.length()){
        if(i != p){
            aux += frase[i];
        }else{
            aux = aux + x + frase[i];
        }
        i++;
    }
    frase = aux;
    cout<<"frase: "<<frase;
    return 0;
}

Definición de los códigos del ejercicio:

#include <iostream> --> significa flujo de entrada-salida estándar. Este archivo de encabezado contiene definiciones de objetos como cin, cout, cerr, etc.
#include <clocale> --> especificador de configuración regional.
#include <string> --> archivo de encabezado de cadena.
using namespace std; --> un espacio de nombres es una colección de nombres o identificadores relacionados (funciones, clases, variables) que ayudan a separar estos identificadores de identificadores similares en otros espacios de nombres o en el espacio de nombres global. Los identificadores de la biblioteca estándar de C++ se definen en un espacio de nombres llamado std.
int --> dato entero de 32 bits.
main() --> la función main() es el punto de entrada de cualquier programa C++. Es el punto en el que se inicia la ejecución del programa. Cuando se ejecuta un programa C++, el control de ejecución va directamente a la función main(). Cada programa C++ tiene una función main().
return 0; --> devolver 0 en la función principal significa que el programa se ejecutó correctamente.
setlocale(); --> sirve para configurar nuestro programa acorde a los parámetros locales de la computadora donde se ejecuta el programa, uno de estos parámetros es el idioma.
LC_CTYPE --> selecciona la categoría de clasificación de caracteres del entorno local.
setlocale(LC_CTYPE, "Spanish"); --> dentro de las comillas del segundo parámetro colocaremos la palabra "Spanish" para que así se utilicen los parámetros hispanos por defecto.
cout<<""; --> se utiliza para mostrar la salida al dispositivo de salida estándar, es decir, monitor.
cin>> --> se utiliza para aceptar la entrada del dispositivo de entrada estándar, es decir, el teclado.
char --> permiten almacenar dos o más caracteres a la vez en una sola variable, son muy útiles para guardar palabras o frases completas.
string --> dato de tipo cadena de texto.
getline() --> es una función integrada definida en el archivo de encabezado <string> que permite aceptar y leer cadenas de una y varias líneas del flujo de entrada.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
length() --> devuelve la longitud de una cadena.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.

Explicación del Código:

¿Qué hace el programa?

Este programa permite insertar un carácter en una posición específica dentro de una frase ingresada por el usuario.

Código del programa

#include <iostream>
#include <clocale>
#include <string>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");
    string frase, aux = "";
    char x;
    int p, i = 0;

    cout<<"Ingresar frase: ";
    getline(cin, frase);

    cout<<"Ingresar carácter a insertar: ";
    cin>>x;

    cout<<"Ingresar posición a insertar: ";
    cin>>p;

    while(i < frase.length()){

        if(i != p){
            aux += frase[i];
        }else{
            aux = aux + x + frase[i];
        }

        i++;
    }

    frase = aux;

    cout<<"frase: "<<frase;

    return 0;
}

Explicación simple de cada parte del código

Código Explicación
#include <iostream> Permite usar las instrucciones de entrada y salida como cin y cout.
#include <clocale> Permite configurar el idioma español en el programa.
#include <string> Permite trabajar con cadenas de texto usando el tipo string.
using namespace std; Evita escribir std:: antes de cada instrucción.
int main() Es la función principal donde inicia el programa.
setlocale(LC_CTYPE, "Spanish"); Configura el idioma español para aceptar caracteres especiales.
string frase, aux = ""; frase guarda el texto original y aux guardará la nueva frase modificada.
char x; Guarda el carácter que se insertará en la frase.
int p, i = 0; p almacena la posición donde se insertará el carácter e i sirve como contador.
getline(cin, frase); Permite ingresar una frase completa incluyendo espacios.
cin >> x; Lee el carácter que el usuario desea insertar.
cin >> p; Lee la posición donde se insertará el carácter.
while(i < frase.length()) Recorre toda la cadena carácter por carácter.
if(i != p) Verifica si la posición actual es diferente de la posición indicada.
aux += frase[i]; Agrega el carácter actual a la nueva cadena.
aux = aux + x + frase[i]; Inserta el nuevo carácter antes del carácter actual.
i++; Incrementa el contador para continuar recorriendo la frase.
frase = aux; Guarda la nueva frase modificada.
cout<<"frase: "<<frase; Muestra la frase final con el carácter insertado.
return 0; Finaliza correctamente el programa.

Ejemplo de funcionamiento

Frase: Hola

Carácter: X

Posición: 2


Resultado: HoXla

No hay comentarios.:

Publicar un comentario

Mostrar los n primeros números múltiplos de 7: 7,14,21,28,35,42,49,56,63,70,... en C++

Código del ejercicio: #include <iostream> #include <clocale> using namespace std ; int main () {     setloca...

Copyright ©2025 Ejercicios de programación. Todos los derechos reservados. ❤️