C语言:对一个字符串中的数值字符求和 例如:”1a2b3c45d”=51?

2025-02-27 15:11:02
推荐回答(1个)
回答1:

标标准准的 c 语言献上。

#include 

#include 


int parseInt(int num[], int n) {

  int i, ret = 0;

  for (i = 0; i < n; ++i) {

    ret *= 10;

    ret += num[i];

  }

  return ret;

}


int main(void) {

  char s[] = "1a2b3c45d";

  int i, num[8], k, sum = 0;

  for (i = 0; s[i] != '\0'; ++i) {

    k = i;

    while (isdigit(s[i])) {

      num[i - k] = s[i] - '0';

      ++i;

    }

    sum += parseInt(num, i - k);

  }

  printf("sum = %d", sum);

  return 0;

}