Dus, is snelheid een bezwaar? Zo niet, dan kan je een loop maken die van achter naar voren door een string loopt en steeds een char uit een string pikt, die vergelijkt met een char op dezelfde positie in een andere string, deze twee cijfers bij elkaar optelt, en zonodig een onthoudt voor de volgende stap in de loop, stapsgewijs het antwoord schrijvend in een derde string. Op deze manier zou je schier-oneindig grote getallen bij elkaar op kunnen tellen. Hetzelfde geldt denk ik voor de andere bewerkingen die je noemde. (Kijk voor vermenigvuldiging wellicht naar vedische wiskunde om het in een enkele loop/kruislings te kunnen doen.) Dezelfde principes kunnen natuurlijk ook gebruikt worden bij een array van int's in plaats van chars, maar dan moet je er waarschijnlijk harder over nadenken.
Dit sluit niet uit dat er handigere manieren zijn of wellicht heeft iemand hier al een goede library voor geschreven, maar desalniettemin zou het moeten werken.
Edit: moest toch even vedic math noemen omdat het zo tof is - toch maf dat ze iedereen op een omslachtige manier leren te vermenigvuldigen, alleen omdat het zogenaamd makkelijker is.