funkcja strcmp() nie sprawdzi mi która z liczb jest większa, pomimo faktu że są sobie równe długością. Może e.g. nr_1=10001000000020000000 i nr_2=10002000000020000000, czyli nr_2 - czarny020
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char* nr1 = "10001000000020000000";
char* nr2 = "10002000000020000000";
if(strlen(nr1) == strlen(nr2)) {
int cmpresult = strcmp(nr1, nr2);
if(cmpresult < 0) {
cout << "Liczba nr1 jest mniejsza od nr2. \n";
} else if(cmpresult > 0) {
cout << "Liczba nr1 jest wieksza od nr2. \n";
} else {
cout << "Liczby sa sobie rowne. \n";
}
}
return 0;
}
Wynik: Liczba nr1 jest mniejsza od nr2.
Działa dla liczb o tej samej długości. Natomiast faktycznie, sprawdzanie wcześniejsze po długości stringów ssie (Wibowit ma rację, moje niedopatrzenie), bo jeśli będziemy mieć przypadek: nr1 = "000001" a nr2 = "002" to nam ze sprawdzania długości wyjdzie, że liczba nr1 jest dłuższa, więc większa, a to nieprawda. Natomiast pomysł xrisx'a z uzupełnianiem zerami jak najbardziej zadziała w tym przypadku.