C# - Code:
private string addiere2Strings(string s1, string s2)
{
if (s1 == "") s1 = "0";
if (s2 == "") s2 = "0";
string e = "";
// s1 soll ggf. der längere String sein
if (s1.Length < s2.Length) { string sh = s1; s1 = s2; s2 = sh; }
int übertrag = 0, zif1=0, zif2=0, neuzif=0;
int i = s1.Length - 1;
int j = s2.Length - 1; // es gilt: j <= j
bool ok = true;
for (int k=0;k<=j;k++)
{
char c1 = s1[i-k];
char c2 = s2[j-k];
try { zif1 = Convert.ToInt16(" " + c1); zif2 = Convert.ToInt16(" " + c2); }
catch { zif1 = 0; zif2 = 0; e = "FEHLER"; ok = false; }
if (ok)
{
int sum = zif1 + zif2 + übertrag;
neuzif = sum % 10;
übertrag = sum / 10;
e = neuzif.ToString() + e;
}
}
zif2 = 0;
if (i>j)
for (int k = j+1; k <= i; k++)
{
char c1 = s1[i - k];
try { zif1 = Convert.ToInt16(" " + c1); } catch { zif1 = 0; e = "FEHLER"; ok = false; }
if (ok)
{
int sum = zif1 + zif2 + übertrag;
neuzif = sum % 10;
übertrag = sum / 10;
e = neuzif.ToString() + e;
}
}
if (übertrag > 0) { e = übertrag.ToString() + e; }
return e;
}