#include <stdio.h>
#include <ctype.h>
#include <assert.h>
void convert(const char *in, char *out) {
unsigned int sum = 0;
char ch;
do {
ch = *in++;
sum += ch - '0';
} else {
*out++ = sum / 10 + '0';
*out++ = sum % 10 + '0';
if (ch == '.') {
*out++ = '.';
sum = 0;
}
}
} while (ch);
}
main() {
/*
stream version:
unsigned int sum = 0;
int ch;
do {
ch = getchar();
if (isdigit(ch)) {
sum += ch - '0';
} else {
putchar(sum / 10 + '0');
putchar(sum % 10 + '0');
if (ch == '.') {
putchar('.');
sum = 0;
}
}
} while (ch != EOF);
*/
char buf[16] = { 0 };
convert("112.234.456.789", buf);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxjdHlwZS5oPgojaW5jbHVkZSA8YXNzZXJ0Lmg+Cgp2b2lkIGNvbnZlcnQoY29uc3QgY2hhciAqaW4sIGNoYXIgKm91dCkgewogIHVuc2lnbmVkIGludCBzdW0gPSAwOwogIGNoYXIgY2g7CiAgZG8gewogICAgY2ggPSAqaW4rKzsKICAgIGlmIChpc2RpZ2l0KGNoKSkgewogICAgICBzdW0gKz0gY2ggLSAnMCc7CiAgICB9IGVsc2UgewogICAgICAqb3V0KysgPSBzdW0gLyAxMCArICcwJzsKICAgICAgKm91dCsrID0gc3VtICUgMTAgKyAnMCc7CiAgICAgIGlmIChjaCA9PSAnLicpIHsKICAgICAgICAqb3V0KysgPSAnLic7CiAgICAgICAgc3VtID0gMDsKICAgICAgfQogICAgfQogIH0gd2hpbGUgKGNoKTsKfQoKbWFpbigpIHsKIC8qCiAgc3RyZWFtIHZlcnNpb246CgogIHVuc2lnbmVkIGludCBzdW0gPSAwOwogIGludCBjaDsKICBkbyB7CiAgICBjaCA9IGdldGNoYXIoKTsKICAgIGlmIChpc2RpZ2l0KGNoKSkgewogICAgICBzdW0gKz0gY2ggLSAnMCc7CiAgICB9IGVsc2UgewogICAgICBwdXRjaGFyKHN1bSAvIDEwICsgJzAnKTsKICAgICAgcHV0Y2hhcihzdW0gJSAxMCArICcwJyk7CiAgICAgIGlmIChjaCA9PSAnLicpIHsKICAgICAgICBwdXRjaGFyKCcuJyk7CiAgICAgICAgc3VtID0gMDsKICAgICAgfQogICAgfQogIH0gd2hpbGUgKGNoICE9IEVPRik7CiAqLwoKICBjaGFyIGJ1ZlsxNl0gPSB7IDAgfTsKICBjb252ZXJ0KCIxMTIuMjM0LjQ1Ni43ODkiLCBidWYpOwogIGFzc2VydCghc3RyY21wKGJ1ZiwgIjA0LjA5LjE1LjI0IikpOwogIHJldHVybiAwOwp9