Ci sono diversi errori basilari (come il controllo nel for), le parentesi, ...
Ti riporto il codice corretto e formattato in modo "umano".
La formattazione del codice e' importante, ti aiuta tantissimo a trovare gli errori.
Ciao.
codice:
#include <stdio.h>
#include <string.h>
int countchar(char *str)
{
int i, c = 0, p = 0;
for (i = 0; i < strlen(str); i++) {
if ((str[i] >= 'A' && str[i] <= 'Z') ||
(str[i] >= 'a' && str[i] <= 'z') ||
(str[i] >= '0' && str[i] <= '9'))
c++;
else {
p = c > p ? c : p;
c = 0;
}
}
return p;
}
int main()
{
char *frase = "La donzelletta vien dalla campagna in sul calar del sole, col suo fascio dell'erba";
printf("%s: %d\n", frase, countchar(frase));
return 0;
}