程序要求能够提取输入的字符串中的数字,将数字累加,得到数字之和,如输入的字符串为"abc76wet23er1.",应该提取数字76,23,1,求和后,即76+23+1=100,要求输入的字符串最后一个字符不能为数字字符。
输入格式:
输入一个字符串,字符串长度不超过100.
输出格式:
输出字符串中的数字之和
输入样例1:
在这里给出一组输入。例如:
abc76wet23er1.
输出样例1:
在这里给出相应的输出。例如:
100
输入样例2:
在这里给出一组输入。例如:
wwq100rty23fg45k
输出样例2:
在这里给出相应的输出。例如:
168
以下为具体代码:
、、、c
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()//字符串中的数字之和
{
char a[101] = { 0 };
int i = 0;
int s = 0;
int j = 0;
int k = 0;
gets(a);
int n = strlen(a);
for (i = 0; i < n; i++)
{
if (a[i] >= '0' && a[i] <= '9')//判断是否为数字字符;
{
j = i;//判断从第一个数字字符开始到最后一个数字字符有几个;
while (1)
{
if (a[j] < '0' || a[j] > '9')
break;
j++;
}
for ( k=i; k < j; k++)//将第一个数字字符开始到最后一个数字字符进行相加;
{
s += (a[k]-48) * pow(10, j - k-1);
}
i = k-1;//for函数会执行一次i++;
}
}
printf("%d", s);
return 0;
}