Como añadir un char a un array char

publicado por: Anonymous
char palabra[]="Hola Mundo";
char vocales[]="";
int i;
for(i=0;i<strlen(palabra);i++){
    if (palabra[i]=='a' ||palabra[i]=='e' ||palabra[i]=='i' ||palabra[i]=='o' ||palabra[i]=='u'){
        //aqui estaria la linea de codigo que necesito
    }
}

El resultado de vocalestendria que ser "oauo"

solución

Lo que tú estás llamando “array char” es una formación1 de tamaño estático. Así pues palabra tiene una longitud estática de 11 caracteres (cuatro para Hola, cinco para Mundo, uno para el espacio y otro para el carácter de finalización de cadena ).

No puedes añadir ningún carácter (char) más.


Si realmente necesitas añadir caracteres, no podrás usar memoria estática, es decir, tendrás que usar memoria dinámica:

char *palabra = new char[11]{"Hola mundo"};
std::cout << palabra << 'n'; // Muestra "Hola mundo"

// Queremos añadir el carácter '!'
char *nueva_palabra = new char[12]{};
std::copy(palabra, palabra + 10, nueva_palabra); // Copiamos el texto original en una formación nueva
delete[] palabra;
nueva_palabra[11] = '!';  // Añadimos el carácter
nueva_palabra[12] = ''; // Marcamos el final de la cadena
std::cout << nueva_palabra << 'n'; // Muestra "Hola mundo!"

Propuesta.

Pero todo eso es un engorro, además de ser un estilo muy propenso a errores y nada acorde con las tendencias modernas, ya que has añadido la etiqueta a la pregunta, usa std::string:

std::string palabra = "Hola mundo";
std::cout << palabra << 'n'; // Muestra "Hola mundo"

palabra.push_back('!'); // Añadimos el carácter
std::cout << palabra << 'n'; // Muestra "Hola mundo!"

Mucho más fácil y seguro.


  1. También conocida como arreglo o en inglés array.
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *