Autor Tema: Programa que ingrese desde teclado un texto y reemplace caracteres C lenguajeC  (Leído 1602 veces)

lel

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Tengo problemas para realizar este programa, ¿me pueden ayudar?

Realice un programa que ingrese desde teclado un texto formado por varias cadenas de caracteres que a continuacion codifique este texto replazando cada caracter por el caracter situado dos numeros odinales a su derecha y por ultimo imprima los dos textos. Realizarlo en C
« Última modificación: 09 de Mayo 2021, 20:40 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re: Ayuda con caracteres
« Respuesta #1 en: 23 de Marzo 2021, 14:51 »
Prueba a realizar primero una versión simplificada.. no se..., leer la cadena y cada dos caracteres cambiarlo por un asterisco o algo así.

Lo consigas o no, publica aquí tu código y luego intentamos cumplir lo que pide el enunciado.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

lel

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Ayuda con caracteres (programa)
« Respuesta #2 en: 23 de Marzo 2021, 19:07 »

Código: [Seleccionar]
#include <iostream>
#include "funciones.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
char cadena[80],c;
int posicion;

printf("Ingrese una cadena de caracteres: ");
gets(cadena);
printf("Ingrese caracter a buscar: ");
scanf("%c",&c);
posicion = buscarCaracter(cadena,c);
if(posicion){
printf("\n\nCaracter %c encontrado en la posicion %d",c,posicion);
printf("\n\nCaracter %c encontrado repetido %d veces.",c,contarRepeticiones(cadena,c));
}
else
printf("\n\nCaracter %c NO encontrado");
return 0;
}

Es la base para ingresar la cadena de caracteres
« Última modificación: 09 de Mayo 2021, 20:41 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re: Ayuda con caracteres
« Respuesta #3 en: 23 de Marzo 2021, 21:40 »
Esa no es la base para pedir una cadena, es otro programa que hace otra cosa.
Por otra parte, no soy experto en C (yo soy más de Java), pero tengo entendido que usar gets para leer cadenas no es lo ideal.
De hecho muchos compiladores te lo indican como "inseguro", debido a que si el usuario teclea más caracteres que los que caben en el array de char, el programa produce excepción y termina abruptamente.

Es mejor usar fgets que se puede indicarle el límite de caracteres y permite hacer una entrada de datos segura.

Mira, este sería un ejemplo haciendo el ejercicio simplificado que propuse antes, leer una cadena y luego cada dos caracteres cambiarlo por un asterisco.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main()
{
system("cls");
char cadena[80];

printf("Ingrese una cadena de caracteres: ");
fgets(cadena, 80, stdin);

printf("\nCadena original:\n");
printf(cadena);

for (int i = 0; i < 80; i+=2)
cadena[i] = '*';

printf("\nCadena modificada:\n");
printf(cadena);

printf("\n");
system("pause");
return 0;
}

Si lo ejecutamos, veremos que funciona:
Citar
Ingrese una cadena de caracteres: esto es una cadena

Cadena original:
esto es una cadena

Cadena modificada:
*s*o*e* *n* *a*e*a*
Presione una tecla para continuar . . .

Ahí en ese código podemos ver que en el bucle podemos alterar la cadena, recorriendo las posiciones del array y cambiando los caracteres según deseamos.

Pues bien, trata de pensar cómo cambiar el código de ese bucle para cambiar CADA caracter, por el que se encuentra dos posiciones a su derecha.

Es decir, el caracter en posición
  • , se ha de cambiar por el que está en [2]

El que está en posición [1], por el de posición [3]
El que está en [2] por el que está en [4].

Y así sucesivamente...

Piénsalo, intenta algo, aunque no funcione o sea un desastre.., pero inténtalo.
Si te dan una solución hecha, no adquieres ningún conocimiento.
Pero si estrujas el cerebro y desarrollas alguna idea, aunque no funcione o sea una locura, créeme que sí sacarás algo productivo de todo eso.
« Última modificación: 09 de Mayo 2021, 20:41 por Ogramar »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".