49> Dato un array s dimensionato DIM di stringhe dimensionate L, scrivere una funzione
int confronta(char [][L])
che ritorna il numero di stringhe uguali.
#include <stdio.h>
#include <string.h>
#define DIM 5
#define L 80
void sort(char [][L]);
void carica(char [][L]);
int confronta(char [][L]);
int main(){
char s[DIM][L];
carica(s);
printf("Sono state trovate %d stringhe uguali",confronta(s));
return 0;
}
void carica(char s[DIM][L]){
int i;
printf("Inserire %d stringhe: \n",DIM);
for(i=0;i<DIM;i++){
gets(s[i]);
fflush(stdin);
}
}
void sort(char s[DIM][L]){
int i,j;
char temp[L];
for(i=0;i<DIM-1;i++){
for(j=i+1;j<DIM;j++){
if(strcmp(s[i],s[j])>0){
strcpy(temp,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],temp);
}
}
}
}
int confronta(char s[DIM][L]){
int i;
int c=0;
int somma=0;
sort(s);
for(i=1;i<DIM;i++){
if(strcmp(s[i],s[i-1])==0){
if(c==0){
c=c+2;
} else {
c++;
}
} else {
somma+=c;
c=0;
}
}
somma+=c;
return somma;
}
049.c