Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Pasar cadenas de caracteres como parametros

Estas en el tema de Pasar cadenas de caracteres como parametros en el foro de C/C++ en Foros del Web. Tengo el siguiente algoritmo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C: Ver original #include <stdio.h> #include <string.h>   #define tf 21   char cadenaa [ tf ] ; ...
  #1 (permalink)  
Antiguo 06/04/2011, 17:12
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Pasar cadenas de caracteres como parametros

Tengo el siguiente algoritmo:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define tf 21
  5.  
  6. char cadenaa[tf];
  7. char cadenab[tf];
  8. char cadenac[tf];
  9.  
  10. //void comparacion(char *cadenaa, char *cadenab, char *cadenac, int tua, int tub);
  11. void validacion(char ca, char cb, int tub, int tua);
  12.  
  13. int main(void){
  14.  
  15. int i, tua, tub, j;
  16.  
  17.    do{
  18.  
  19.       printf("\nIngrese el tamaño de la cadena A (20max.) : ");
  20.       scanf("%d", &tua);
  21.    
  22.    }while(tua>20);
  23.  
  24.    printf("\nIngrese los %d elementos: ", tua);
  25.  
  26.    for(i=0;i<tua;i++){
  27.       scanf("%s", &cadenaa[i] );
  28.    }
  29.    
  30.    do{
  31.  
  32.       printf("\nIngrese el tamaño de la cadena B (20max.) : ");
  33.       scanf("%d", &tub);
  34.  
  35.    }while(tub>20);
  36.  
  37.    printf("\nIngrese los %d elementos: ", tub);
  38.  
  39.    for(j=0;j<tub;j++){
  40.       scanf("%s", &cadenab[j] );
  41.    }
  42.    
  43.    
  44.    validacion(cadenaa, cadenab, tub, tua);
  45.    //comparacion(cadenaa, cadenab, cadenac, tua, tub);
  46. return 0;
  47. }
  48.  
  49.  
  50. /*void comparacion(char *cadenaa, char *cadenab, char *cadenac, int tua, int tub)
  51. {
  52.  
  53. int i, aux, j, cont=0;
  54.  
  55.    if(tua>tub){
  56.       for(i=0;i<=tua;i++){
  57.          aux=strcmp(cadenaa, cadenab);
  58.          
  59.          if (aux==0){
  60.             cadenac[cont]=cadenaa[i];
  61.             cont=cont+1;
  62.          }
  63.       }
  64.            
  65.    }
  66.    else
  67.    {
  68.    
  69.       for(j=0;j<=tub;j++){
  70.          aux=strcmp(cadenab, cadenaa);
  71.  
  72.          if(aux==0){
  73.             cadenac[cont]=cadenab[j];
  74.             cont=cont+1;
  75.          }
  76.       }
  77.    }
  78.  
  79. }*/
  80.  
  81. void validacion(char ca[20], char cb[20], int tub, int tua)
  82. {
  83.  
  84. int i, j;
  85.  
  86.    for(i=0;i<tua;i++){
  87.       printf("\nCadena A: %s\n", ca[i] );
  88.    }
  89.  
  90.    for(j=0;j<tub;j++){
  91.       printf("\nCadena B: %s\n", cb[j] );
  92.    }
  93. }

Pero estoy teniendo estos errores al pasar los parametro:

Cita:
*aviso: el paso del argumento 1 de ‘validacion’ crea un entero desde un puntero sin una conversión.

*el paso del argumento 2 de ‘validacion’ crea un entero desde un puntero sin una conversión

*tipos en conflicto para ‘validacion’

*la declaración previa de ‘validacion’ estaba aquí
Porque sera?
__________________
Software libre rocks lml
  #2 (permalink)  
Antiguo 07/04/2011, 01:35
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Pasar cadenas de caracteres como parametros

Prueba a no poner tamaño en la definición de la función, poner char[]
  #3 (permalink)  
Antiguo 07/04/2011, 11:32
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Respuesta: Pasar cadenas de caracteres como parametros

Me sirvio, gracias. tambn tuve que usar %c, en vez de %s
__________________
Software libre rocks lml
  #4 (permalink)  
Antiguo 07/04/2011, 11:36
 
Fecha de Ingreso: octubre-2010
Ubicación: Edo. de México
Mensajes: 94
Antigüedad: 13 años, 6 meses
Puntos: 9
Respuesta: Pasar cadenas de caracteres como parametros

A simple vista creo que tiene que ver que tu funcion espera cadenas de 20 caracteres y tu le mandas cadenas de 21 caracteres.
  #5 (permalink)  
Antiguo 07/04/2011, 17:00
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Respuesta: Pasar cadenas de caracteres como parametros

Cita:
Iniciado por Trovaz Ver Mensaje
A simple vista creo que tiene que ver que tu funcion espera cadenas de 20 caracteres y tu le mandas cadenas de 21 caracteres.
Ya arregle ese detalle
__________________
Software libre rocks lml

Etiquetas: cadenas, caracteres, parametros, pasar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:17.