Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Josuex24 en 30 Abril 2015, 04:03 AM

Título: Cadena de caracteres. Ayuda urgente!
Publicado por: Josuex24 en 30 Abril 2015, 04:03 AM
Hola amigos por favor necesito de sus ayudas en este codigo, debo modificar los datos de una cadena de caracteres, el usuario debe ingresar el nombre y el compilador buscará posicion por posicion cual es igual al nombre ingresado por el usuario, no puedo hacer uso de librerias ni nada de eso, tengo este codigo y me da error. Por favor ayuda!.

Código (cpp) [Seleccionar]
int BuscarN(char N[M][C])
{
int i,pos=-1;
char nombre[C];
cout<<"Ingrese el nombre de la persona en la cual desea modificar los datos\n";
cin>>nombre;
for (i=0; i<M; i++)
if(nombre==N[i])
pos=i;
return pos;
}

void Modificar(char N[M][C], char S[M], float P[M])
{
int i;
i=BuscarN(N);
if (i==-1)
cout<<"No ingreso un nombre valido\n";
else
{
cout<<"Nombre : \n";
cin>>N[i];
cout<<"Sexo : \n";
cin>>S[i];
cout<<"Peso : \n";
cin>>P[i];
}
}
Título: Re: Cadena de caracteres. Ayuda urgente!
Publicado por: engel lex en 30 Abril 2015, 15:59 PM
Citartengo este codigo y me da error. Por favor ayuda!.

empieza diciendo que error te da (copia y pega si es de compilador)

M y C son variables globales, son defines... qué? explica tu código con detalle, no esperes que adivinemos que hiciste en la parte no publicada
Título: Re: Cadena de caracteres. Ayuda urgente!
Publicado por: eferion en 30 Abril 2015, 16:19 PM
Coincido con lo dicho con engel_lex.

De todas formas un apunte rápido:

Las cadenas no se pueden comparar usando el operador ==. Hay que usar strcmp o similares.

nombre==N[i]

Esa comparación de ahí arriba devolverá "false" SIEMPRE salvo que el puntero "nombre" y el puntero "N[ i ]" apunten a la misma posición de memoria... lo cual veo poco probable (por no decir imposible) dado tu código.

Si en vez de usar char* para las cadenas pasases a usar la clase "string", entonces sí que podrías usar de forma segura el operador de comparación.

Un saludo
Título: Re: Cadena de caracteres. Ayuda urgente!
Publicado por: Josuex24 en 1 Mayo 2015, 04:43 AM
M y C son constantes, no me dejan utilizar variables globales. De todas maneras gracias , ya encontré la solucion, sin embargo no puedo compartirlo con ustedes en este momento ya que no lo tengo a la mano, y como lo dije antes, no me dejan hacer uso de alguna librería, el profesor quiere que aprendamos como trabajan stdio, string, etc. Muchas gracias por sus respuestas, un saludo.
Título: Re: Cadena de caracteres. Ayuda urgente!
Publicado por: eferion en 2 Mayo 2015, 20:06 PM
Cita de: Josuex24 en  1 Mayo 2015, 04:43 AM
no me dejan hacer uso de alguna librería

la función strcmp que te comenté pertenece al estándar de C/C++, es más, está incluido en la librería "string".... esa que el profesor te pide utilizar.