题目描述
程序要求能够提取输入的字符串中的数字,将数字累加,得到数字之和,如输入的字符串为"abc76wet23er1.",应该提取数字76,23,1,求和后,即76+23+1=100,要求输入的字符串最后一个字符不能为数字字符。
输入格式:
输入一个字符串,字符串长度不超过100.
输出格式:
输出字符串中的数字之和
输入样例1:
在这里给出一组输入。例如:
abc76wet23er1.
输出样例1:
在这里给出相应的输出。例如:
100
输入样例2:
在这里给出一组输入。例如:
wwq100rty23fg45k
输出样例2:
在这里给出相应的输出。例如:
168
代码:
#include <stdio.h>
int issum(char ch);
int Sumarr(int arr[]);
int main()
{
int sum[100]={0};//定义一个长度为100的数组,并赋初值为0
char ch;
int i=0;
while(ch=getchar(),ch!='\n')//每输入一个字符就进行判断
{
if(issum(ch))//如果是数字字符,就进行下面的运算
sum[i]=sum[i]*10+(ch-'0');//把数字字符转化为数字存入a[0],如果下一位还是数字字符,则继续存入a[0]
else
i++;//否则换数组的第二个空间a[1]...以此类推
}
printf("%d",Sumarr(sum));//对数组中所有元素进行求和并输出
return 0;
}
//判断是否为数字字符
int issum(char ch)
{
if(ch>='0'&&ch<='9')
return 1;
else
return 0;
}
//对数组中的元素进行求和
int Sumarr(int arr[])
{
int i,sum=0;
for(i=0;i<100;i++)
sum+=arr[i];
return sum;
}