Originariamente inviato da earp_
come si fa una funzione che determini (e restituisca) quante volte si trovano i vari caratteri nella stringa.
codice:
#include <stdio.h>
#include <string.h>
void countStrings (char *str, char *strings[], int *occurrences, int count)
{
int i, len;
char *p;
memset (occurrences, 0, count * sizeof (int));
for (i = 0; i < count; i++)
{
p = str;
len = strlen (strings[i]);
while ((p = strstr (p, strings[i])) != NULL)
{
occurrences[i]++;
p += len;
}
}
}
int main (void)
{
int i;
char *text = "prova di ricerca di stringhe dentro una stringa";
char *strings[] = { "st", "tr", "di" };
int occurrences[3];
countStrings (text, strings, occurrences, 3);
for (i = 0; i < 3; i++)
printf ("\"%s\" %d\n", strings[i], occurrences[i]);
return 0;
}