(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 :
struct result count( char str, int idx )
accepts a character array
and an integer.
But you are passing a character ... str[idx].