Foro de elhacker.net

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
  1. int BuscarN(char N[M][C])
  2. {
  3. int i,pos=-1;
  4. char nombre[C];
  5. cout<<"Ingrese el nombre de la persona en la cual desea modificar los datos\n";
  6. cin>>nombre;
  7. for (i=0; i<M; i++)
  8. if(nombre==N[i])
  9. pos=i;
  10. return pos;
  11. }
  12.  
  13. void Modificar(char N[M][C], char S[M], float P[M])
  14. {
  15. int i;
  16. i=BuscarN(N);
  17. if (i==-1)
  18. cout<<"No ingreso un nombre valido\n";
  19. else
  20. {
  21. cout<<"Nombre : \n";
  22. cin>>N[i];
  23. cout<<"Sexo : \n";
  24. cin>>S[i];
  25. cout<<"Peso : \n";
  26. cin>>P[i];
  27. }
  28. }
  29.  


Título: Re: Cadena de caracteres. Ayuda urgente!
Publicado por: engel lex en 30 Abril 2015, 15:59 pm
Citar
tengo 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.

Código
  1. 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
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.