Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/10/2015, 10:38
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Capturtar por teclado una cadena de caracteres

Cita:
Iniciado por RGT Ver Mensaje
Que pasa si hago esto:

char Cadena[10];
es obligatorio asignar el tamaño de la cadena?.
En C++ se entiende por string el uso de la clase std::string, std::wstring o cualquiera similar.

char* es un arreglo que almacena caracteres, se puede conocer como string en el entorno de C, pero no en el de C++.

Es igualmente válido char* que std::string?

En líneas generales sí. Lo que sucede es que la clase string de C++ es mucho más potente que la versión de punteros. Basta señalar, por ejemplo, que con la clase string puedes almacenar una cadena de longitud aleatoria (que viene a decir del tamaño que te de la gana), la propia clase se encarga de que haya suficiente tamaño en el buffer para que quepa lo que le intentas meter... en un arreglo de caracteres en cambio tendrás que gestionar eso a mano para evitar desbordamiento de buffer.

Además, la clase string hace gestión automática de la memoria dinámica, por lo que reducirá el riesgo de fugas de memoria.

Las interfaces de C++ que trabajen con string sabrán trabajar, en la mayoría de los casos, con arreglos de tipo char, pero en ese caso hay que estar muy seguro de lo que haces porque puedes dejar tu programa en muy mal estado si al usuario le da por meter caracteres de más.

Un saludo.