>>6
I thought about atoi for a moment, but was disgusted with this thought. atoi is inherently dirty, C-like, .h-file including filth. Learn to use C++ toolset when writing C++.
int convertInteger(char* c) {
int i = 0;
int r = 0;
while (c[i] != '\0') {
r = r * 10;
switch (c[1]) {
case "0":
r = r + 0;
break;
case "1":
r = r + 1;
break;
case "2":
r = r + 2;
break;
case "3":
r = r + 3;
break;
case "4":
r = r + 4;
break;
case "5":
r = r + 5;
break;
case "6":
r = r + 6;
break;
case "7":
r = r + 7;
break;
case "8":
r = r + 8;
break;
case "9":
r = r + 9;
break;
default:
return NULL;
}
}
return r;
}
int convertInteger(char* c) {
int i = 0;
int r = 0;
while (c[i] != '\0') {
r = r * 10;
switch (c[1]) {
case "9": ++r;
case "8": ++r;
case "7": ++r;
case "6": ++r;
case "5": ++r;
case "4": ++r;
case "3": ++r;
case "2": ++r;
case "1": ++r;
case "0": break;
default: return NULL;
}
}
return r;
}
Name:
Anonymous2010-10-16 12:57
97 /* parses 's' as a 'base' base string */
98 int64_t parsestring(char *s, int base) {
99
100 unsigned int i,j,slen=strlen(s),n=0;
101 int64_t r = 0;
102
103 for(i=0;i<slen;i++) {
104 if(s[i]>='0' && s[i]<='9')
105 n = s[i] - 48;
106 else if(s[i]>='A' && s[i]<='F')
107 n = s[i] - 55;
108 else if(s[i]>='a' && s[i]<='f')
109 n = s[i] - 87;
110 else
111 return -1;
112 if(n>=base)
113 return -1;
114 for(j=1;j<slen-i;j++)
115 n*=base;
116 r+=n;
117 }
118 return r;
119 }
>>10
I couldn't care to check if there was an appropriate procedure defined with this puny ad-hoc polymorphism (so-called overloading) for >>1's case (I thought that there was, but if there was not, I couldn't care less).
I detest C++. I detest it so unconditionally. I crave for ability to abhor C++ to death.