elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error al comparar una cadena con una matriz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error al comparar una cadena con una matriz  (Leído 1,407 veces)
anaeldi

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Error al comparar una cadena con una matriz
« en: 4 Marzo 2018, 22:36 pm »

Estaba programando este código y cuando lo compile me marco un error que dice: "[Error] invalid conversion from 'char' to 'const char*' [-fpermissive]"

Y no se como solucionarlo.

Lo que hace este programa es un sistema básico de altas, bajas y consultas.


Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. struct Tadress{
  5. char streetNo[50];
  6. char colonia[40];
  7. char codP[8];
  8. char city[20];
  9. char tel[12];
  10. };
  11. struct Templ{
  12. int idEmpl;
  13. char entName[60];
  14. char depar[40];
  15. Tadress direc;
  16. float sal;
  17. };
  18.  
  19. void altas(char pers[100][9],Templ& ppl, int& lim);
  20. void bajas(char pers[100][9], int& lim);
  21. void listado(char pers[100][9], int& lim);
  22.  
  23. int main () {
  24. char personal[100][9];
  25. int op,lim=0;
  26. Templ ppl;
  27. ppl.idEmpl=1;
  28.  
  29. do{
  30. printf("EMPRESA\n\n1 ALTAS\n2 BAJAS\n3 CONSULTAS\n4 SALIR\nOpcion: ");
  31. scanf("%i", &op);
  32.  
  33. switch(op){
  34. case 1:
  35. altas(personal,ppl,lim);
  36. break;
  37. case 2:
  38. bajas(personal,lim);
  39. break;
  40. case 3:
  41. listado(personal,lim);
  42. break;
  43. }
  44. }while(op<4);
  45. }
  46. void altas(char pers[100][9],Templ& ppl, int& lim){
  47.  
  48. for(int i=0;i<lim;i++){
  49. printf("\nALTAS\n\nNo. Empleado: %i",ppl.idEmpl);
  50. pers[i][0]=ppl.idEmpl;
  51. ppl.idEmpl++;
  52.  
  53. printf("\nIngresar el nombre del empleado: ");
  54. fflush(stdin);
  55. gets(ppl.entName);
  56. strcpy(&pers[i][1], ppl.entName);
  57.  
  58. printf("\nIngresar el nombre del departamento: ");
  59. fflush(stdin);
  60. gets(ppl.depar);
  61. strcpy(&pers[i][2], ppl.depar);
  62.  
  63. printf("\nDireccion\n Calle y numero: ");
  64. fflush(stdin);
  65. gets(ppl.direc.streetNo);
  66. strcpy(&pers[i][3], ppl.direc.streetNo);
  67.  
  68. printf("\n Colonia: ");
  69. fflush(stdin);
  70. gets(ppl.direc.colonia);
  71. strcpy(&pers[i][4], ppl.direc.colonia);
  72.  
  73. printf("\n Codigo Postal: ");
  74. fflush(stdin);
  75. gets(ppl.direc.codP);
  76. strcpy(&pers[i][5], ppl.direc.codP);
  77.  
  78. printf("\n Ciudad: ");
  79. fflush(stdin);
  80. gets(ppl.direc.city);
  81. strcpy(&pers[i][6], ppl.direc.city);
  82.  
  83. printf("\n Telefono: ");
  84. fflush(stdin);
  85. gets(ppl.direc.tel);
  86. strcpy(&pers[i][7], ppl.direc.tel);
  87.  
  88. printf("\n Ingresar el salario mensual del trabajador: ");
  89. scanf("%f", &ppl.sal);
  90. pers[i][8]=ppl.sal;
  91.  
  92. }
  93. lim++;
  94. }
  95.  
  96. void bajas(char pers[100][9], int& lim){
  97. int idBaja;
  98. printf("\nBAJAS\n\nIngresar el ID a dar de baja: ");
  99. scanf("%i", &idBaja);
  100. lim--;
  101. for(int i=idBaja-1;i<lim;i++){
  102. for(int j=0;j<9;j++){
  103. pers[i][j]=pers[i+1][j];
  104. }
  105. }
  106. }
  107.  
  108.  
  109. void listado(char pers[100][9], int& lim){
  110. char busqD[40];
  111. printf("\nCONSULTAS\n\nIngresar el nombre del departamento: ");
  112. fflush(stdin);
  113. gets(busqD);
  114.  
  115. printf("\n\nID EMPLEADO\tNOMBRE\t\tSALARIO");
  116. for(int i=0;i<lim;i++){
  117.    for(int j=0;j<9;j++){
  118.        [color=red]if(strcmp(busqD, pers[i][2]) == 0){<-- ERROR[/color]
  119.            printf("\n%i\t %s\t %.2",pers[i][0],pers[i][1],pers[i][8]);
  120.        }
  121.    }
  122. }


En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Error al comparar una cadena con una matriz
« Respuesta #1 en: 4 Marzo 2018, 23:28 pm »

en la linea 118
Código
  1. strcmp(busqD, pers[i][2])
le estas pasando la posicion de un carácter lo que tienes que hacer es
Código
  1. strcmp(busqD, pers[i])
  2.  


« Última modificación: 4 Marzo 2018, 23:31 pm por Kenji-chan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con comparar cadena??
Programación Visual Basic
Hole_System 2 1,850 Último mensaje 11 Julio 2008, 09:08 am
por Hole_System
Comparar cadena con un caracter ascii
Programación C/C++
d00ze13 2 11,536 Último mensaje 9 Marzo 2011, 10:30 am
por Akai
Error al comparar cadena
Java
mapers 1 1,753 Último mensaje 3 Julio 2012, 10:08 am
por ollo
comparar dos cadena de caracteres en PROGRAMCION EN C
Programación C/C++
routers en C! 0 1,687 Último mensaje 3 Diciembre 2012, 21:04 pm
por routers en C!
Ayuda con el error al comparar los numeros de una columna dentro de una matriz
Programación C/C++
creiko 0 1,604 Último mensaje 8 Mayo 2016, 09:27 am
por creiko
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines