| Ejemplos de C - Cadenas |
1.- Programa que captura cadenas y realiza operaciones sobre ellas:
#include<stdio.h>
#include<string.h>
void fmenu(void);
void fopcion_uno(void);
void fopcion_dos(void);
void fopcion_tres(void);
void fopcion_cuatro(void);
void fopcion_cinco(void);
void fopcion_seis(void);
void fopcion_siete(void);
void fopcion_ocho(void);
void fopcion_nueve(void);
int opcion;
char cadena1[30];
char cadena2[30];
int nromax;
int pos;
int lon;
int busqueda;
char caracter;
void main()
{
do
{
fmenu();
switch(opcion)
{
case 1:fopcion_uno();
break;
case 2:fopcion_dos();
break;
case 3:fopcion_tres();
break;
case 4:fopcion_cuatro();
break;
case 5:fopcion_cinco();
break;
case 6:fopcion_seis();
break;
case 7:fopcion_siete();
break;
case 8:fopcion_ocho();
break;
case 9:fopcion_nueve();
break;
case '10':;
break;
default:;
}
}
while(opcion!=10);
}
void fmenu(void)
{
puts("CON ESTE PROGRAMA PUEDE REALIZAR LOS SIGUIENTES PROCESOS\n");
puts("-------------------------------------------------------------------------------------------------------\n");
puts("1.-Capturar dos cadenas, concatenarlas y visualizar el resultado\n");
puts("2.-Capturar dos cadenas, copiar una en otra y visualizar el resultado\n");
puts("3.-Capturar una cadena y permitir busquedas sucesivas de un caracter\n");
puts(" iniciando la busqueda por el principio y visualizar la posicion\n");
puts("4.-Capturar una cadena y permitir busquedas sucesivas de un caracter\n");
puts(" iniciando la busqueda por el final y visualizar la posicion\n");
puts("5.-Capturar dos cadenas, compararlas y visualizarlas en orden\n");
puts("6.-Capturar una cadena y visualizar su longitud\n");
puts("7.-Capturar dos cadenas, concatenar 'n' caracteres de la 1º
en la 2º y visualizar el resultado\n");
puts("8.-Capturar dos cadenas, copiar 'n' caracteres de la 1º en la
2º y visualizar el resultado\n");
puts("9.-Capturar dos cadenas, comparar 'n' caracteres de la 1º con
la 2º y visualizar el resultado\n");
puts("10.-Finalizar\n");
scanf("%d",&opcion);
}
void fopcion_uno(void)
{
puts("Introduzca una cadena destino\n");
fflush(stdin);
gets(cadena1);
puts("Introduzca una cadena origen\n");
gets(cadena2);
strcat(cadena1,cadena2);
printf("La cadena resultante es: %s\n",cadena1);
}
void fopcion_dos(void)
{
puts("Introduzca la cadena destino\n");
fflush(stdin);
gets(cadena1);
puts("Introduzca la cadena origen\n");
gets(cadena2);
printf("Cadena antes de la copia: %s\n",cadena1);
strcpy(cadena1,cadena2);
printf("La cadena resultante es: %s\n",cadena1);
}
void fopcion_tres(void)
{
puts("Introduzca la cadena destino\n");
fflush(stdin);
gets(cadena1);
puts("Teclea el caracter a buscar\n");
fflush(stdin);
gets(cadena2);
pos=strcspn(cadena1,cadena2);
lon=strlen(cadena1);
if (pos<lon )
{printf("La primera %s esta en la posicion %d\n",cadena2,pos);}
else printf("El caracter %s no se encuentra en la cadena %s\n",cadena2,cadena1);
}
void fopcion_cuatro(void)
{
puts("Introduzca la cadena destino\n");
fflush(stdin);
gets(cadena1);
puts("Teclea el caracter o caracteres a buscar\n");
fflush(stdin);
gets(cadena2);
pos=strcspn(cadena1,cadena2);
lon=strlen(cadena1);
if (pos<lon )
{printf("La primera %s esta en la posicion %d\n",cadena2,pos);}
else printf("El caracter %s no se encuentra en la cadena %s\n",cadena2,cadena1);
}
void fopcion_cinco(void)
{
puts("Introduzca la cadena 1\n");
fflush(stdin);
gets(cadena1);
puts("Introduzca la cadena 2\n");
fflush(stdin);
gets(cadena2);
if(strcmp(cadena1,cadena2)==0)
puts("cadena 1 y 2 iguales\n");
else if (strcmp(cadena1,cadena2)<0)
puts("cadena uno menor que la dos\n");
else puts("cadena uno mayor que la dos\n");
}
void fopcion_seis(void)
{
puts("Introduzca una cadena\n");
fflush(stdin);
gets(cadena1);
printf("La longitud de la cadena es %d caracteres\n",strlen(cadena1));
}
void fopcion_siete(void)
{
puts("Introduzca una cadena destino\n");
fflush(stdin);
gets(cadena1);
puts("Introduzca una cadena origen\n");
gets(cadena2);
puts("Teclea el numero de caracteres a concatenar\n");
scanf("%d",&nromax);
strncat(cadena1,cadena2,nromax);
printf("La cadena resultado es: %s\n",cadena1);
}
void fopcion_ocho(void)
{
puts("Introduzca la cadena destino\n");
fflush(stdin);
gets(cadena1);
puts("Introduzca la cadena origen\n");
gets(cadena2);
puts("Introduce el numero de caracteres a copiar\n");
scanf("%d",&nromax);
strncpy(cadena1,cadena2,nromax);
printf("La cadena resultante es: %s\n",cadena1);
}
void fopcion_nueve(void)
{
puts("Introduzca la cadena 1\n");
fflush(stdin);
gets(cadena1);
puts("Introduzca la cadena 2\n");
gets(cadena2);
puts("Introduce el numero de caracteres a comparar\n");
scanf("%d",&nromax);
if(strncmp(cadena1,cadena2,nromax)==0)
puts("cadena 1 y 2 iguales\n");
else if (strcmp(cadena1,cadena2)<0)
puts("cadena uno menor que la dos\n");
else puts("cadena uno mayor que la dos\n");
}