the operator int() function converts the string to an int
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;
}
So what’s the logic behind operator int() ? What’s the 48 in there? Can someone explain to me the algorithm behind the conversion from string to int.
Yes this converts a string to an integer. 48 is the ASCII value for ‘0’. If you subtract 48 from an ASCII digit you’ll get the value of the digit (ex: ‘0’ – 48 = 0, ‘1’ – 48 = 1, ..). For each digit, your code calculates the correct power of 10 by using
k(ranges between 1…10^{ log of the number represented by the input string}).