der Operator int() Funktion konvertiert den String in einen intWas ist die Logik hinter diesem Programm?
class mystring
{
private:
chat str[20];
public:
operator int() // i'm assuming this converts a string to an int
{
int i=0,l,ss=0,k=1;
l = strlen(str)-1;
while(l>=0)
{
ss=ss+(str[l]-48)*k;
l--;
k*=10;
}
return(ss);
}
}
int main()
{
mystring s2("123");
int i=int(s2);
cout << endl << "i= "<<i;
}
Also, was hinter operator int()
die Logik ist? Was ist die 48 da drin? Kann mir jemand den Algorithmus erklären, der hinter der Umwandlung von String in int steht?
Dieses Programm wird nicht kompiliert, reparieren Sie das zuerst. – ildjarn
48 ist der ASCII-Code-Wert für das Zeichen '0' – TJD
Es sollte beachtet werden, dass das nicht gut geschriebenen Code ist, und das "Geheimnis" 48, und das Fehlen von Kommentaren sind das Giveaway. (Auch haben wir stringstream für diese Konvertierung oder Boost) –