Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: PHByte en 22 Enero 2016, 12:13 pm



Título: Duplicar un caracter en una cadena
Publicado por: PHByte en 22 Enero 2016, 12:13 pm
Buenas, el ejercicio me pide una funcion que reciba un caracter y una cadena, y de como resultado otra cadena igual pero con el caracter recibido duplicado. Ejemplo: duplica ('o' ,"hola adios" ) ------------------> "hoola adioos"

No consigo hacer que lo duplique, pao lo que tengo con la funcion incompleta:

#include <stdio.h>
#include <string.h>
#define TAM 100

//declaro funcion
void duplica (char letra, char cadena[]);

//programa principal
main(){
        char cadena[TAM],letra;
       
          printf("\nIntroduce una frase: ");
       gets(cadena);
          printf("\nLetra que quieras duplicar: ");
          scanf("%c",&letra);
          duplica(letra,cadena);
}

//desarrollo la funcion
void duplica (char letra, char cadena[]){
   int i;
   for(i=0;i<strlen(cadena);i++){
      if(cadena==letra){
         
      }
   }
   printf("\n\nFrase con letras duplicadas: %s",cadena);

}


Título: Re: Duplicar un caracter en una cadena
Publicado por: fary en 22 Enero 2016, 12:58 pm
Aquí tienes tu solución, intenta usar las etiquetas para poner código, es mucho mas fácil leerlo...  :xD

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void DuplicaLetraEnCadena(char * Cadena, char Letra);
  6.  
  7. int main()
  8. {
  9.    char cadena[255];
  10.    char letra;
  11.  
  12.    printf("Introduce una frase: ");
  13.    fgets(cadena, 255, stdin);
  14.  
  15.    printf("Introduce la letra a duplicar: ");
  16.    scanf("%c",&letra);
  17.  
  18.    DuplicaLetraEnCadena(cadena, letra);
  19.    return 0;
  20. }
  21.  
  22. void DuplicaLetraEnCadena(char * Cadena, char Letra)
  23. {
  24.    int i;
  25.  
  26.    for (i = 0; i < strlen(Cadena); i++)
  27.    {
  28.        if(Cadena[i] == Letra)
  29.        {
  30.            printf("%c%c", Cadena[i], Cadena[i]);
  31.        }else{
  32.            printf("%c", Cadena[i]);
  33.        }
  34.    }
  35. }

saludos.


Título: Re: Duplicar un caracter en una cadena
Publicado por: PHByte en 22 Enero 2016, 13:26 pm
Muchisimas gracias! Tendre en cuenta las citaciones para proximas veces :D


Título: Re: Duplicar un caracter en una cadena
Publicado por: 0xFer en 22 Enero 2016, 16:10 pm
Muchisimas gracias! Tendre en cuenta las citaciones para proximas veces :D

Él se refiere a esta etiqueta:

(http://i.imgur.com/c8wy5q0.png)

Saludos.


Título: Re: Duplicar un caracter en una cadena
Publicado por: MAFUS en 22 Enero 2016, 18:18 pm
Debería de renombrarse a 'Código en lenguaje...'