Y a peut être un moyen de l´optimiser un peu en supprimant la variable var, pour ne garder qu´un " char *val" et non un " const char *val", dont on incrémentera l´addresse, comme :
int compte( char* val, char ch )
{
char table[256];
int nb = 0;
memset(table,0,sizeof(char)*256);
table[ch]= 1;
while( *val!=´\0´)
{
nb+=*(table+*val);
val++;
}
return nb;
}
Les statiques avaient l´avantage d´être plus rapides en outre...