#include #include int main (int argc, char *argv[]) { int i,j,emfaniseis[512], last,k,l,otinanai,telikosmetritis; /*i oti na nai einai metavliti pou aporofa tous epipleon xaraktires ston arxiko, o telikos metritis metraei poses pragmatika lekseis yparxoun, diladi diaforetikes metaksi tous[]*/ char arxikos[1024], *deiktes[512], *tmp; scanf("%c", &arxikos[0]); /*vriskw to 1o stoixeio kai apo8ikeuw ta ypoloipa*/ if((arxikos[0]>='A')&&(arxikos[0]<='Z')) /* kefalaio se mikro*/ { arxikos[0]=arxikos[0]+32; } i=1; while ((i<1024)&&(arxikos[i-1]!=EOF)) {scanf("%c", &arxikos[i]); if((arxikos[i]>='A')&&(arxikos[i]<='Z')) /* kefalaio se mikro*/ { arxikos[i]=arxikos[i]+32; } i++;} scanf("%d", otinanai); last=i-1; /*8esi teleutaiou xaraktira einai i-1*/ for (i=0; i<1024; i++) /*elegxos an einai alfari8mitikos o xaraktiras arxikos[i] kai an einai, isoutai me \0 */ {k=0; for (j=65; j<=90; j++) {if (arxikos [i] == j) {k=1;}} for (j=97; j<=122; j++) {if (arxikos [i] == j) {k=1;}} if (k==0) {arxikos[i]='\0';} } deiktes[0] = &arxikos[0]; /*vazw tis arxes twn le3ewn se deiktes*/ j=1; for (i=1; i<1024; i++) { if (arxikos[i]!= '\0' && arxikos[i-1]=='\0') /*ftiaxnw pinaka me deiktes*/ {deiktes[j]=&arxikos[i]; j++;} } last=j-1; for (i=0; i<=last; i++) /*taksinomw*/ { for (l=i; l<=last; l++) { if (strcmp(deiktes[i],deiktes[l])>0) { tmp = deiktes[i]; deiktes[i] = deiktes [l]; deiktes[l] = tmp; } } } for (i=0; i<=last; i++) /*arxikopoiw pinaka emfaniseis[i]*/ {emfaniseis[i]=1;} for (i=0; i<=last; i++) { if (*deiktes[i]==*deiktes[i+1]) {emfaniseis[i]++; telikosmetritis--; for (l=(i+1); l<=last; l++) { *deiktes[l-1]=*deiktes[l];} last--; } /*last -- epeidi ta teleutaia stoixeia pou menoun einai idia opote o telikosmetritis 8a meiw8ei xwris na prepei*/ } printf("autes einai oi lekseis tou keimenou, taksinomimenes"); for (i=0; i<=telikosmetritis; i++) {printf("%d %c", emfaniseis[i], *deiktes[i]);} return(0); }