Ejercicio 1

Anuncio
Ejercicio 1
#include <stdlib.h>
#include <string.h>
char * cc(char *s1, char *s2){
char *c;//auxiliar para retornar
int k=strlen(s1);//uso esta invocacion varias veces
int i;//indice de los caracteres de s1
int j=0;//indice de los caracteres de c
//reservo espacio en memoria para c, liberar al invocar
if(k<=strlen(s2))
c=(char *) malloc(k+1);
//guarda 1 mas para terminador nulo
else
c=(char *) malloc(strlen(s2)+1);
c[0]='\0';//lo inicializo como string vacio
/*char *strchr(char *s, int c);retorna un puntero a la
primera ocurrencia del caracter c en el string s, o NULL
sino existe el caracter c en el string s*/
for(i=0;i<k;i++)
if((strchr(s2,s1[i])!=NULL) &&
(strchr(c,s1[i])==NULL)){
c[j]=s1[i];
c[j+1]='\0';
//terminador nulo por si es la ultima vez que entra al if
j++;
}
return c;
}
Ejercicio 2
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char **cadenas,auxi[1024],m[100],M[1024];
int i,j;
printf("Ingrese 10 strings:\n");
cadenas=(char**) malloc(10*sizeof(char*));
for(i=0;i<10;i++){
printf("Palabra %d: ",i+1);
gets(auxi);
cadenas[i]=(char*)malloc(strlen(auxi)+1);
strcpy(cadenas[i],auxi);
}//inicializo m y M
strcpy(m,cadenas[0]);
strcpy(M,cadenas[0]);
for(j=1;j<10;j++){
if(strlen(cadenas[j])>strlen(M))
strcpy(M,cadenas[j]);
if(strlen(cadenas[j])<strlen(m))
strcpy(m, cadenas[j]);
}
printf("Adivina que se muestra aqui!: %s\n",M);
printf("Y aqui...?: %s\n",m);
}
Descargar