básicamente, si podemos insertar, recuperar, y comparar una cadena, podemos plantear una solución a un problema. Para un caso practico, surge la necesidad de desarrollar nuestras propias funciones para el manejo de cadena, por tal motivo, me di a la tarea de desarrollar las siguientes funciones.
/*
DESCRIPCION :FUNCION QUE CALCULA LA LONGITUD DE UNA CADENA CUALQUIERA
PARAMETROS :CHAR *CADENA, *CADENA ES LA CADENA A COMPARAR.
RETURN :RETORNA UN TIPO DE DATO ENTERO, CON EL VALOR DE LA LONGITUD DE LA CADENA
VERSION : 1.0.0
DOCUMENTO A :--
*/
int longitudCadena(char *cadena){
printf("--Cadena2 es: %s:\n", cadena);
int i=0,cont=0;
while( cadena[i] != '\0'){
printf( "\n--cadena[%d] es %c ",i,cadena[i]);
if(cadena[i] != '\0')//PUEDE COMPARAR LO QUE QUIERAS, EJE, CUANTAS A HAY.
cont++; //CUENTA CUANTOS CARACTERES SON DIFERENTES AL TOKEN DE FIN DE CADENA
i++;
}//END WQ
return cont;
}//END funcion
/*
DESCRIPCION :FUNCIàN QUE COMPARA SI DOS CADENAS SON IGUALES O NO.
PARAMETROS :CHAR *CADENA1, CHAR CADENA2.
RETURN :RETORNA 1, EN CASO DE QUE LA CADENA SEA IGUAL, 0 EN ASO CONTRARIO.
VERSION :1.0.0
DOCUMENTO A :--
*/
int compararCadena(char *cadena1, char *cadena2){
printf("\n\n\n------------------------------------");
printf("\nCOMPARAR CADENAS\n");
printf("--Cadena1 %s Vs %s Cadena2\n",cadena1,cadena2);
int i, cont=0, longitud1=0,longitud2=0, salida;
longitud1=longitudCadena(cadena1);
longitud2=longitudCadena(cadena2);
if(longitud1!=longitud2)
printf("\n---Las cadenas son diferentes, debido a que las longitudes de las cadenas son diferentes.");
else{
for(i=0;i
return cadcopia;
}//END FUNCION
Que opinan de este código?. Cada quien puede elaborar su propio código, como lo he dicho antes, el programar depende en cierta forma de la creatividad de cada quien, asi que cualquier otra propuesta de como elaborar estas funciones es completamente valida -siempre y cuando funcione-.
les dejo este código para que lo completen,
#include
#include
#include
concatenar(char cad1[], char cad2[]);
int longitudCadena(char *cadena2);
int compararCadena(char *cadena1, char *cadena2);
char extraerCaracter(int pos, char *cadena);
char* extraerSubcadena(int li, int ls, char *cadena);
char* concatenarCadena(char *cadena1, char *cadena2);
char* invertirCadena(char *cadena);
/*
DESCRIPCION :FUNCION QUE CALCULA LA LONGITUD DE UNA CADENA CUALQUIERA
PARAMETROS :CHAR *CADENA, *CADENA ES LA CADENA A COMPARAR.
RETURN :RETORNA UN TIPO DE DATO ENTERO, CON EL VALOR DE LA LONGITUD DE LA CADENA
VERSION : 1.0.0
DOCUMENTO A :--
*/
int longitudCadena(char *cadena){
printf("--Cadena2 es: %s:\n", cadena);
int i=0,cont=0;
while( cadena[i] != '\0'){
printf( "\n--cadena[%d] es %c ",i,cadena[i]);
if(cadena[i] != '\0')//PUEDE COMPARAR LO QUE QUIERAS, EJE, CUANTAS A HAY.
cont++; //CUENTA CUANTOS CARACTERES SON DIFERENTES AL TOKEN DE FIN DE CADENA
i++;
}//END WQ
return cont;
}//END funcion
/*
DESCRIPCION :FUNCIàN QUE COMPARA SI DOS CADENAS SON IGUALES O NO.
PARAMETROS :CHAR *CADENA1, CHAR CADENA2.
RETURN :RETORNA 1, EN CASO DE QUE LA CADENA SEA IGUAL, 0 EN ASO CONTRARIO.
VERSION :1.0.0
DOCUMENTO A :--
*/
int compararCadena(char *cadena1, char *cadena2){
printf("\n\n\n------------------------------------");
printf("\nCOMPARAR CADENAS\n");
printf("--Cadena1 %s Vs %s Cadena2\n",cadena1,cadena2);
int i, cont=0, longitud1=0,longitud2=0, salida;
longitud1=longitudCadena(cadena1);
longitud2=longitudCadena(cadena2);
if(longitud1!=longitud2)
printf("\n---Las cadenas son diferentes, debido a que las longitudes de las cadenas son diferentes.");
else{
for(i=0;i
return cadcopia;
}//END FUNCION
main(){
clrscr();
//char cadena[20];
char *cadena, *cadena1, caracter;
int i,igualdad;
printf("Ingrese la cadena: ");
gets(cadena);//Captura una cadena de caracteres por pantalla
printf("Ingrese cadena1: ");
gets(cadena1);
/*
printf( "La longitud de la cadena2 es: %d,", longitudCadena(cadena)) ;
printf("Longitud con funci¢n %d", strlen(cadena));
igualdad = compararCadena( cadena,cadena1 );
printf("\nLa igualdad es:%d",igualdad);
if( igualdad == 1 )
printf("\n--La cadena -%s-, es igual que la cadena1 -%s-",cadena,cadena1);
else
printf("\n--La cadena -%s-, no es igual que la cadena1 -%s-",cadena,cadena1);
caracter = extraerCaracter(10,cadena);
printf("\nEl caracter extraido de cadena es %c ", caracter);
*/
printf("\nLa subcadena de 1,2 de cadena es : %s ", extraerSubcadena(2,4,cadena) );
printf("\nLa concatenaci¢nde cadena1, y cadena2 es: %s", concatenarCadena(cadena, cadena1) );
getche();
return 0;
}
así como esta lo pueden compilar y ejecutar. Falta la función invertir cadena, planteenla.
En la clase de mañana, trabajaremos con estas funciones, y buscaremos plantear soluciones para algunos tipos de problemas.
Como un aviso importante, recalco que el segundo parcial será unificado y se realizará el próximo jueves en horas de la tarde, a eso de las 6.
Ademas, el día lunes haremos clase común y corriente, y recalco, que a la fecha ninguno ha ido a asesorías.
Saludos.

