输入一个字符串,提取其中的数字,将字符转换为数值分别输出,并输出提取数字的累加值,
如果字符串中不含数字,则数值累加值为0,例如:如果输入"a23e6k75f",则出"23,6,75,sum=104",
如果输入"abcd",则输出"sum=0
#include <stdio.h>
#include <string.h>
int main(){
char str[80];
int i,j,num,sum=0;
gets(str);
for(i=0;i<strlen(str);i++){
//当前字符是数字字符
if(str[i]>='0'&&str[i]<='9'){
num=str[i]-'0';//将字符数字转化为数值类型
for(j=i+1;j<strlen(str);j++){
//下一个字符也是数字字符
if(str[j]>='0'&&str[j]<='9') {
num=num*10+str[j]-'0';
continue;
}else{
break;
}
}//for
sum+=num;
printf("%d,",num);
i=j;//i=j+1
}
}
printf("sum=%d",sum);
return 0;
}
虽然我将i=j+1这行注释掉了,但我还是觉得应该是这样的,不知道为什么结果不对,这一点还需要我继续思考