何で文字列に変換するれば解決できると思ったのか知りたい。

確かにCの文字列は可変長だから、多倍長の整数を表現することはできる。
でも、文字列で表された多倍長整数を加算するには、
結局、ここの部分文字列を整数型に入れながら局所的な計算を繰り返すわけだから
文字列に変換しなくても、別に何も変わらない。