#include <stdio.h>
#include <ctype.h>
int strToInt(const char *text)
{
int n = 0, sign = 1;
switch (*text) {
case '-': sign = -1;
case '+': ++text;
}
for (; isdigit(*text
); ++text
) n
*= 10, n
+= *text
- '0'; return n * sign;
}
int main()
{
const char *samples[] = {
"123", "-234", "+345", "abc", ""
};
enum { n = sizeof samples / sizeof *samples };
for (int i = 0; i < n; ++i) {
printf("strToInt(\"%s\"): %d\n", samples
[i
], strToInt
(samples
[i
])); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxjdHlwZS5oPgoKaW50IHN0clRvSW50KGNvbnN0IGNoYXIgKnRleHQpCnsKICBpbnQgbiA9IDAsIHNpZ24gPSAxOwogIHN3aXRjaCAoKnRleHQpIHsKICAgIGNhc2UgJy0nOiBzaWduID0gLTE7CiAgICBjYXNlICcrJzogKyt0ZXh0OwogIH0KICBmb3IgKDsgaXNkaWdpdCgqdGV4dCk7ICsrdGV4dCkgbiAqPSAxMCwgbiArPSAqdGV4dCAtICcwJzsKICByZXR1cm4gbiAqIHNpZ247Cn0KCmludCBtYWluKCkKewogIGNvbnN0IGNoYXIgKnNhbXBsZXNbXSA9IHsKICAgICIxMjMiLCAiLTIzNCIsICIrMzQ1IiwgImFiYyIsICIiCiAgfTsKICBlbnVtIHsgbiA9IHNpemVvZiBzYW1wbGVzIC8gc2l6ZW9mICpzYW1wbGVzIH07CiAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgIHByaW50Zigic3RyVG9JbnQoXCIlc1wiKTogJWRcbiIsIHNhbXBsZXNbaV0sIHN0clRvSW50KHNhbXBsZXNbaV0pKTsKICB9CiAgcmV0dXJuIDA7Cn0=