つか、NULL を無効値にすればいんじゃ・・・?
数字検出時に何桁目なのかを意識しなくても

if ( isdigit(ch) )
  repeat_count = repeat_count * 10 + ch - '0' ;

で済むし。
但し、入力が "0R"とかの場合に>>160とは挙動が変わってしまうが。

まぁ、他人の課題にそこまで考えてやる必要ないし。気ぃ悪くしたらスマソ。