#include <stdio.h>
#include <stdlib.h>
int sumString(char string[]) {
int sum = 0;
char *ptr = string;
while(*ptr) {
char *endp = ptr;
int num
= strtol(ptr
, &endp
, 10); if(ptr != endp){
sum += num;
ptr = endp;
} else {
++ptr;
}
}
return sum;
}
int main(void) {
printf("sum of '1 2 b asdsd 3 4' is %d\n", sumString
("1 2 b asdsd 3 4")); printf("sum of '18b5' is %d\n", sumString
("18b5")); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBzdW1TdHJpbmcoY2hhciBzdHJpbmdbXSkgewogICAgaW50IHN1bSA9IDA7CiAgICBjaGFyICpwdHIgPSBzdHJpbmc7CgogICAgd2hpbGUoKnB0cikgewogICAgCWNoYXIgKmVuZHAgPSBwdHI7CiAgICAJaW50IG51bSA9IHN0cnRvbChwdHIsICZlbmRwLCAxMCk7CiAgICAJaWYocHRyICE9IGVuZHApewogICAgCSAgICBzdW0gKz0gbnVtOwogICAgCSAgICBwdHIgPSBlbmRwOwogICAgCX0gZWxzZSB7CiAgICAJICAgICsrcHRyOwogICAgCX0KICAgIH0KICAgIHJldHVybiBzdW07Cn0KCmludCBtYWluKHZvaWQpIHsKCXByaW50Zigic3VtIG9mICcxIDIgYiBhc2RzZCAzIDQnIGlzICVkXG4iLCBzdW1TdHJpbmcoIjEgMiBiIGFzZHNkIDMgNCIpKTsKCXByaW50Zigic3VtIG9mICcxOGI1JyBpcyAlZFxuIiwgc3VtU3RyaW5nKCIxOGI1IikpOwoJcmV0dXJuIDA7Cn0K