char *p = str; 指向字符串首地址while (*p != '\0')if (*p >= '0' && *p <= '9') 或 isdigit(*p)sum += *p - '0';(字符 '0'~'9' 對應 ASCII 碼連續)p++;int sum_digits(const char *str) {
int sum = 0;
while (*str) {
if (isdigit(*str)) sum += *str - '0';
str++;
}
return sum;
}
*p - '0' 將字符轉為對應整數值('5' - '0' = 5)isdigit() 更具可移植性str[i] 效率略高,且更符合 C 風格