Hej,
to nie jest bezpośrednie wskazanie problemu w Twoim kodzie, ale właśnie przerobiłem ten kod w C na dostający AC z wykorzystaniem getline. Dlaczego nie poszedłeś tą drogą?
[EDIT]
Aaa, już wiem co chciałeś osiągnąć
Problem z fgets jest tutaj taki, że nie wiesz, ile znaków mają linie albo nie doczytałeś dokumentacji tej funkcji. Zalecam eksperyment: zmień MAX_STR_SIZE na coś małego, np. 5 i odpal kod. Zobaczysz przyczynę WA.