Witam. Próbuję zrobić własną funkcję w C++ (w builderze) do której wprowadza się dwa stringi (zakładamy, ze to znaki od 0 do 9) i funkcja zwraca jeden string będący iloczynem tych dwóch. Czyli stringi liczba1 = "1234" i string liczba2 = "2" funkcja zwróci string wynik = "2468". Głównie potrzebuję tej funkcji do szyfrowania, gdzie mnożę liczby kilkudziesięcio cyfrowe (zawsze dwie).
Swoją funkcje oparłem na "mnożeniu pisemnym". Najpierw wprowadzone stringi pętlą przepisuje na tablice int, gdzie [0] to liczba jednosci [1] liczba dziesiątek [2] liczba setki itp.. Potem operacje mnożenia, t to jest zmienna tymczasowa dla napisu liczby do następnej w pisemnym mnożeniu.
Oto funkcja :
string mnozenie(string liczba1, string liczba2);
string mnozenie(string liczba1, string liczba2)
{
char wynik[1000];
int a[1000], b[1000], wynik1[1000]={NULL};
for(int i=liczba1.length()-1, j=0;i>=0;i--, j++)a[j]=(int)liczba1[i]-48;
for(int i=liczba2.length()-1, j=0;i>=0;i--, j++)b[j]=(int)liczba2[i]-48;
for(int i=0, j=0, t=0;i<100;i++)
{
wynik1[j]=((a[i]*b[j])%10)+t;
t=((a[i]*b[j])/10);
if(i==liczba1.length())
{
j++;
i=0;
}
if(j==1000)break;
}
for(int i=0;i<1000;i++)
{
if(wynik1[i]>10)
{
wynik1[i+1]=wynik1[i]/10;
wynik1[i]=wynik1[i]%10;
}
wynik[i]=wynik1[i];
}
return wynik;
}
Godzinami się jej przyglądam i nie wiem co w niej jest źle. Proszę o pomoc!