輸入:sjflas1234lafjdsl3532sldfjsl3lskadjfl90 → 提取數字 1234、3532、3、90 → 和 = 4859。
'0'~'9')累積構建當前數值:num = num * 10 + (c - '0')。num 加入總和 sum,歸零 num。num(若字符串以數字結尾)。#include <stdio.h>
#include <string.h>
int main() {
char input[] = "sjflas1234lafjdsl3532sldfjsl3lskadjfl90";
long long sum = 0;
long long num = 0;
for (int i = 0; i < strlen(input); i++) {
char c = input[i];
if (c >= '0' && c <= '9') {
num = num * 10 + (c - '0');
} else {
sum += num;
num = 0;
}
}
sum += num; // 最後一段數字
printf("sum = %lld\n", sum); // 4859
return 0;
}
long long 防止溢出(題目提示 unsigned long long 可能不夠)。0012 累積為 12)。while (scanf("%s", s) != EOF) 循環處理。