C/Visual C - ayuda

 
Vista:

ayuda

Publicado por callejas (1 intervención) el 28/02/2006 23:07:32
tengo problemas con un programita no me asigna la cadena de caracteres que quiero,
yo lo ago de la siguiente manera: ej.

nom_mes="loco";
pero el compilador me dice que hay error no se si lo estoy asiendo mal, pero si la cadena de caracteres se asigna de distinta manera diganme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda

Publicado por Carlos (6 intervenciones) el 01/03/2006 01:28:54
Hola....
Tu problemita es muy sencillo.... pero voy a suponer que esa es una intrucción en C++

las cadenas en c++ no se pueden asignar asi como asi.... todo depende...
si el tipo de dato de la variable es "char" entonces la debiste haber declarado asi:

char nom_mes[15];

suponiendo que es una cadena de 15 caracteres.... pero el problema es que C++ no asume esa variable como una cadena sino como un vector de 16 posiciones el cual va tener en cada posicion un caracter, es decir, algo como esto: 'l', 'o', 'c', 'o'

entonces para asignar las cadenas no puedes hacerlo como lo estas haciendo en la muestra sino asi:

char nom_mes[] = "loco";

debes poner los corchetes en blanco.... esta es una forma de hacerlo solo que es muy poco flexible puesto que debes hacerla en la misma declaración de la variable y a veces uno necesita leer una variable del teclado y asignarla luego.... o tal vez ir cambiando el valor de dicha variable.... en tal caso el metodo anterior no sirve...

entonces puedes hacerlo de la siguiente manera.... esta es la que mas me gusta....

char *nom_mes; // Delcaras la variable de tipo char, pero como un puntero.
....
....
nom_mes = "cualquier valor"; // Luego puedes asignar sin ningun problema cualquier valor.

Existe otra solucion pero para ello debes saber un poco de las plantillas STL

te explico un poco.... con un ejemplo

#include <string.h>

using namespace std;

int main()
{
string nom_mes, nombreUsuario;

cin >> nom_mes;
nombreUsuario = nom_mes;
}

como ves manejar las cadenas con las plantillas STL es demasiado sencillo... te aconsejo que investigues más sobre el tema.....

Espero haber podido ayudarte..... te pido que por favor me respondas..... sea para aclarar alguna duda o para saber si te sirvio o no....

bye..... suerte....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar