编写一个c语言程序,实现以下功能

输入一个字符串,字符串有数字以及其他字符,输出数字的和。比如shdvhsj425hdjbdjj56gj,求其中数字之和。425+56跟4+2+5+5+6这两个


#include <stdio.h>

int main()
{
   char str[100];
   gets(str);
   int i = 0, x = 0, t, 
       sum1 = 0, sum2 = 0;
   while (str[i])
   {
      if (str[i] >= '0' && str[i] <= '9')
      {
         t = str[i] - '0';
         x = x * 10 + t;
         sum2 += t;         
      }
      else if (str[i] < '0' || str[i] > '9' || str[i + 1] == '\0')
      {
         sum1 += x;         
         x = 0;
      }
      i++;
   }
   printf("%d %d", sum1, sum2);

   return 0;
}