Ver Mensaje Individual
  #13 (permalink)  
Antiguo 01/02/2013, 02:38
Avatar de pepitogrillo13051993
pepitogrillo13051993
 
Fecha de Ingreso: febrero-2013
Mensajes: 20
Antigüedad: 11 años, 3 meses
Puntos: 0
Información Programa strings básico c/c++ (tutorial 6.1) Parte 1

El programa pedirá una contraseña y se pedirá al usuario su entrada para continuar ejecutando el programa. Mientras el usuario escribe la contraseña sólo verá asteriscos, y el programa lo saludará si la introduce correctamente y continuará con la presentación del menú o terminará el programa con un despido en caso contrario.

Opciones del menú del programa de tratamiento de cadenas de caracteres:

a) intercalación de caracteres: intercalará un carácter entrado por teclado (por ejemplo, un '$') entre los caracteres de una cadena también entraremos por teclado, imprimiendo la cadena resultante.
b) Sustitución de caracteres: entraremos una cadena para teclado y cambiaremos todas las apariciones de un determinado carácter por otro carácter (los 2 caracteres les pediremos por teclado), imprimiendo la cadena resultante.
c) Distancia entre caracteres: imprimirá el número de posiciones o separación entre 2 caracteres entrados por teclado dentro de una cadena también pedida por teclado.
d) Reducir separadores: entraremos una cadena y dejará un único espacio en blanco como separador de sus palabras (reduciendo un conjunto de espacios en uno solo o bien sustituyendo
una tabulación por un espacio), imprimiendo la cadena resultante.
e) Comprobar cadenas palíndromos: Ignorando los espacios, se leen igual de izquierda a derecha que de derecha a izquierda, por ejemplo: "la ruta natural" (hay que invertir el orden de los caracteres de la cadena entrada por teclado y luego sacar todos los separadores de palabras).

#include <iostream>
#include <stdio.h> /* printf y scanf */
#include <stdlib.h> /* Lo uso para que funcione el system("cls") i rand() */
#include <string.h> /* strcopy(), gets(), strcat() */
#include <time.h> /* srand(time(NULL)*/
#include <conio.h>

using namespace std;

int main()
{
int contador, contador2, contador3, posicion1, posicion2, intentos = 3, palindromo = 0, anterior;
char password[25], opcio[2], caracter, caracter2, reemplazar, *p_cadena, cadena_origen[30], cadena_espacios[30], cadena_final[60];

system("title=Practica 6 - Exercici 1 By Kevin Palma Lopez");

/*do{
printf("Intents: %d\n\n", intentos);*/
printf("Escriu el password per entrar al sistema: ");

contador = 0;
while(password[contador] != 13){
password[contador] = getch();
if(password[contador] > 32 && contador < 25) {
putchar('*');
contador++;
}
else if(password[contador] == 8 && contador > 0){
putchar(8);
putchar(' ');
putchar(8);
contador--;
}
}
password[contador] = '\0';

if(!strcmp(password, "123456")){//Compara (a la inversa) la cadena apuntada por 'password' con la cadena apuntada por '123456'.
system("cls");
printf("_______________________________BENVINGUT AL SISTEMA_____________________________\n\n");
printf("Menu d'opcions:\n\n");
printf("\ta) Intercalacio de caracters\n");
printf("\tb) Substitucio de caracters\n");
printf("\tc) Distancia entre caracters\n");
printf("\td) Reduir separadors\n");
printf("\te) Comprovar cadenes palindroms\n\n");
printf("Escull l'opcio que t'interessi: ");
scanf("%c", &opcio);
system("cls");

switch(opcio[0]){
case 'a':
intentos = 0;
contador = 0;
contador2 = 0;
printf("____________________________INTERCALACIO DE CARACTERS___________________________\n\n");
printf("Entra el caracter a intercalar:\t");
fflush(stdin);
scanf("%c", &caracter);
printf("\n");
printf("Entra la cadena: ");
fflush(stdin);
gets(cadena_origen);
printf("\n");
printf("RESULTAT\t-->\t ");
while(cadena_origen[contador] != '\0'){
if(contador != 0){
cadena_final[contador2]=cadena_origen[contador];
contador++;
}
else{
contador2++;
cadena_final[contador2]=caracter;
contador2++;
cadena_final[contador2]=cadena_origen[contador];
contador++;
}
}
cadena_final[contador2]='\0';
printf("%s\n\n", cadena_final);
break;
case 'b':
contador = 0;
printf("_____________________________SUBSTITUCIO DE CARACTERS___________________________\n\n");
printf("Escriu una cadena de caracters (Maxim 20 caracters): ");
fflush(stdin);
gets(cadena_origen);
printf("\nEscriu el caracter que es vol substituir: ");
fflush(stdin);
scanf("%c", &caracter);
printf("\nEscriu el caracter pel cual substituira: ");
fflush(stdin);
scanf("%c", &reemplazar);
printf("\n");
printf("RESULTAT\t-->\t ");
strcpy(cadena_final, cadena_origen);
while(cadena_origen[contador] != '\0'){
if(cadena_origen[contador] == caracter){
cadena_final[contador] = reemplazar;
}
contador++;
}
printf("%s", cadena_final);
printf("\n\n");
break;
case 'c':
contador = 0;
posicion1 = 0;
posicion2 = 0;
printf("____________________________DISTANCIA ENTRE CARACTERS___________________________\n\n");
printf("Entra la cadena: ");
fflush(stdin);
gets(cadena_origen);
printf("\n");
printf("Entra el primer caracter:\t");
fflush(stdin);
scanf("%c", &caracter);
printf("\n");
printf("Entra el segon caracter:\t");
fflush(stdin);
scanf("%c", &caracter2);
printf("\n");
printf("RESULTAT\t-->\t ");
while(contador<strlen(cadena_origen)){
if(cadena_origen[contador] == caracter){
posicion1 = contador;
}
else if(cadena_origen[contador] == caracter2){
posicion2 = contador;
}
contador++;
}
printf("La distancia es %d", posicion2-posicion1-1);
printf("\n\n");
break;
case 'd':
contador = 0;
contador2 = 0;

SIGUE EN EL SIGUIENTE POST!!