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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  nueva funcion en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: nueva funcion en c  (Leído 1,589 veces)
fernaEDLP

Desconectado Desconectado

Mensajes: 48


Ver Perfil
nueva funcion en c
« en: 15 Enero 2019, 01:31 am »

hola de nuevo, estoy a full porque rindo en febrero 3 materias, y una de ellas es esta, tengo que crear tres funciones e implmentarlas, son las siguientes
int cuentavocales(char cad)
void suprimirletra(char cadena[,char letra)
void ponespaciosenblanco(char cadena,numblancos)
me salieron todas menos la de suprimir letra, el problema es que no me pasa como parámetro de referencia mi caracter que le paso en el main, me iguala cadena[i=='l', es decir me toma a l como caracter y yo quiero que lo use como variable, pensé en hacerlo por referencia, pero el enunciado del problema me pide que la función la defina tal cual la puse arriba, mi código quedo así:
Código
  1. int cuentavocales(char cadena[]);
  2. void suprimirletra(char cadena[],char l);
  3. void ponblancosalprincipio(char cadena[],int numblancos);
  4.  
  5. int main()
  6. {
  7.    char cad[80],c;
  8.    int x,resultado;
  9.    printf("ingrese una cadena por favor\n");
  10.    gets(cad);
  11.    resultado=cuentavocales(cad);
  12.    printf("la cantidad de vocales es %d\n",resultado);
  13.    printf("que letra desea suprimir?\n");
  14.    scanf("%c",&c);
  15.    suprimirletra(cad,c);
  16.    printf("cuantos espacios en blancos desea tener\n");
  17.    scanf("%d",&x);
  18.    ponblancosalprincipio(cad,x);
  19.    return 0;
  20.  
  21. }
  22.  
  23. int cuentavocales(char cadena[])
  24. {
  25.    int i=0,cont=0;
  26.    while(cadena[i]!='\0')
  27.    {
  28.        if(cadena[i]=='a'||cadena[i]=='e'||cadena[i]=='i'||cadena[i]=='o'||cadena[i]=='u'||cadena[i]=='A'||cadena[i]=='E'||cadena[i]=='U'||cadena[i]=='O'||cadena[i]=='I')
  29.        {
  30.            cont++;
  31.        }
  32.        i++;
  33.    }
  34.    return cont;
  35. }
  36. void suprimirletra(char cadena[],char l)
  37. {
  38.    int i=0;
  39.    while(cadena[i]!='\0')
  40.    {
  41.        if(cadena[i]=='l')
  42.        {
  43.            printf(" ");
  44.        }
  45.  
  46.        i++;
  47.    }
  48. puts(cad);
  49.    return;
  50. }
  51. void ponblancosalprincipio(char cadena[],int numblancos)
  52. {
  53.    int i=0,j;
  54.    while(cadena[i]==cadena[0])
  55.    {
  56.        for(j=0;j<numblancos;j++)
  57.        {
  58.            printf(" ");
  59.        }
  60.        i++;
  61.    }
  62.    puts(cadena);
  63.    return ;
  64. }
  65.  



pd:la gente que esta en este foro me ayuda mas que los ayudantes de mi facultad, mil gracias de antemano


« Última modificación: 15 Enero 2019, 01:35 am por fernaEDLP » En línea

josue9243

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: nueva funcion en c
« Respuesta #1 en: 15 Enero 2019, 03:12 am »

qeqe?, no entendi q le paso al suprimir xd


En línea

Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: nueva funcion en c
« Respuesta #2 en: 15 Enero 2019, 04:12 am »

CADENA

Código
  1. vacio suprimir_letra(E/S: cadena hola'\0' , E: suprimir 'a')
  2. {
  3. hacer el recorrido
  4. si encuentro esa letra
  5. mover todo el arreglo 1 posicion a la izquierda
  6. cadena[i]=cadena[i+1];
  7. }
  8.  

Y si es funcion bueno extraes ese caracter , y en el main si existe pones el dato 'a' fue eliminado y si no lo encontro , no existe el dato;

Código
  1. char suprimir_letra(E/S: cadena hola'\0' , suprimir 'a')
  2. {
  3. char extraido='@';//Valor arbitrario
  4. hacer el recorrido
  5. si encuentro esa letra
  6. mover todo el arreglo 1 posicion a la izquierda
  7. extraido=cadena[i];
  8. cadena[i]=cadena[i+1];
  9. devolver extraido;
  10. }
  11.  
« Última modificación: 15 Enero 2019, 04:20 am por Beginner Web » En línea

7w7
fernaEDLP

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Re: nueva funcion en c
« Respuesta #3 en: 15 Enero 2019, 05:28 am »

Hola creo que entendí tu idea, pero como haces para pasarle como parámetro la letra?, o sea suponete que yo ingreso  la 'a' en el main a través del caracter c, y se lo quiero pasar como parámetro a la función a través de la sentencia void suprimirletra(cad,c), en el momento que  hago eso y entra en el cuerpo de la función, mi función que esta definida como void suprimirletra(cadena,char l), no toma la letra 'a' a través de char l, sino que usa a l como caracter a suprimir
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: nueva funcion en c
« Respuesta #4 en: 15 Enero 2019, 08:24 am »

El problema que tienes es que confundes una variable de tipo char con un literal de tipo char.
Código
  1.  
  2. char a = 'e';
  3. printf("%c", a); // muestra: e
  4. printf("%c", 'a'); // muestra: a

Si usas un carácter entre comillas simples, estás usando ese caracter literalmente. Y si usas un caracter sin comillas estás usando el nombre de una variable y esa variable puede tener otro caracter guardado.

En tu función si usas 'I', estás usando el caracter 'I', pero si usas I (sin comillas), estás usando el caracter que tenga guardado la variable I que puede ser cualquier letra. Suerte :-X
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
fernaEDLP

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Re: nueva funcion en c
« Respuesta #5 en: 15 Enero 2019, 20:56 pm »

siii graciass!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines