Mam do napisania program który zlicza wystąpienia UNIKALNYCH znaków z ciągu drugiego w pierwszym.
Program mam napisany, tylko że zlicza mi tez powtórzenia.
Przykład:
Tekst:
This mystery puzzmysteryled me
Drugi Ciąg:
mystery
Oczekiwane wyjście:
18
Ktoś ma pomysł jak moge je wykluczyć?```
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <ctype.h>
int count_all_of(char tab[], char tab2[], int size2);
int main() {
char tab1[1000];
char tab2[1000];
int size2;
printf("Podaj tekst\n");
fgets(tab1,1000,stdin);
printf("Podaj szukany ciag\n");
fgets(tab2,1000,stdin);
strtok(tab2,"\n");
strtok(tab1,"\n");
size2=(int)strlen(tab2);
printf("%d\n",count_all_of(tab1, tab2, size2));
return 0;
}
int count_all_of(char tab[], char tab2[], int size2)
{
int i,j,licznik=0;
if( isspace(tab2[0]))
{
return -1;
}
else
{
for(i=0;i<(int)strlen(tab);i++)
{
for(j=0;j<size2;j++)
{
if(tab[i]==tab2[j])
{
// printf("%c ",(char)tab2[j]);
licznik++;
}
}
}
return licznik;
}
}