(1) int num_a=0, num_b=0;

This one causes error because C (or C++) does not allow in-struct (or in-class) initialization of non-const static member variables.
You should define the struct without initializations and then initialize num_a and num_b to 0 whenever you declare a new variable of that struct type.

(2) return count( str[idx], idx);

The count function you have defined :
Code: CPP
struct result count( char str[], int idx )
accepts a character array and an integer.
But you are passing a character ... str[idx].
jhgan, shabbir likes this