Char en C++ para que sirve
En la lección de las variables hablamos del tipo char, y explicamos que en verdad no son una variable sino que son un array que guarda 1 a 1 cada uno de los caracteres, en la clase pasada se habló de los arreglos, si todavía no saben que es un arreglo y quieren aprender este tema bien a fondo han de estudiar la clase pasada, de lo contrario puede costar entender un poquito esta, aunque si solo les interesa saber el por qué se tiene que indicar un tamaño antes de usar char, que es char y su diferencia con el tipo string entonces bastara con prestar atención a lo siguiente.
En char se pueden almacenar cadenas de texto, char es el tipo de datos para almacenar texto por defecto en C++, siempre es necesario indicar su tamaño máximo entre paréntesis cuadrados, esto porque como pasa en todo arreglo es necesario indicar el tamaño que tendrá, de esta forma la aplicación reservara el espacio necesario en memoria para dicha variable, así acontece con los lenguajes llamados "de bajo nivel", es decir aquellos que manejan los datos controlando más directamente el hardware a diferencia de los "lenguajes de alto nivel" que son más fáciles para el ser humano pero menos flexibles.
Ejemplo de uso de char
char mensaje[12]="Adios mundo";
A continuación el código entero por si alguien que todavía no conoce el uso de librerías de entrada y salida está siguiendo esta lección.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
char mensaje[12]="Adios mundo";
cout << mensaje << endl;
system("pause");
return 0;
}
Otra cosa importante es que si nuestro texto tiene 11 caracteres tenemos que reservar como mínimo 12, esto porque en ese espacio extra nuestro char almacenara el carácter nulo '\0', no hay que meterle mucha mente al carácter nulo porque ni se ve ni se puede modificar simplemente que esto le indica al programa que la cadena ya ha finalizado, solo eso.
Diferencias entre string y char, ¿cual es mejor?
Es mucho más fácil utilizar el tipo string porque no tenemos que indicar el tamaño que tendrá nuestro string, sino que simplemente se auto incrementara su tamaño dependiendo de que tanto escribamos, en verdad string es un puntero, un ejemplo de su uso es el siguiente.
string datos;
datos="Este es un texto de tamaño mediano y no generara ningún problema en mi código porque no importa su tamaño";
Por tanto podemos decir que string es un char autoincrementable, en conclusión es mucho más sencillo utilizar string, y sobre esas dudas de cual será mejor, ahorra más espacio, será más liviano y todo eso, la respuesta es que son lo mismo en cuanto a rendimiento porque al final string hace uso de los mismos códigos. Mi recomendación es que utilicen siempre string, excepto si alguna librería de terceros les solicita utilizar char.