C语言求输入一段字符串 将其中连续的数字相加

如题,即"ab123cd456ef78"要求123+456+78求代码... 如题,即"ab123cd456ef78" 要求123+456+78
求代码
展开
 我来答
听不清啊
高粉答主

2014-03-05 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>

void main()

{

 char s[100],*p=s;

 int sum=0,i,j;

 gets(s);

 while(*p)

 {i=0;

  while(*p&&(*p<'0'||*p>'9'))p++;

  while(*p&&(*p>='0'&&*p<='9'))

  {i=10*i+*p-'0'; p++;}

  sum+=i;

 }

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

}

古尔格
2014-03-05 · TA获得超过627个赞
知道小有建树答主
回答量:300
采纳率:50%
帮助的人:261万
展开全部
#include<stdio.h>
//已测试,欢迎追问
#include<string.h>

int cf(int x,int y)

{

    int i;

 for(i=1;i<y;i++)

  x*=10;

 return x;

}

int main()

{

 char a[100];

 int i,j,k,len,goal=0,result[100],wei[100]={0};

 scanf("%s",a);

 len=strlen(a);

 for(i=0,j=0,k=0;i<len;i++)

  if(a[i]>='0'&&a[i]<='9'){result[j++]=a[i]-48;wei[k]++;}

  else if(wei[k]!=0)

   k++;

 for(i=0;i<j;i++)

 {

  if(wei[k]==0)k--;

  goal+=cf(result[i],wei[k]--);

 }

 printf("%d",goal);

 return 0;

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-05
展开全部
数组储存 ascii判断取值 然后类型转换 运算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-05
展开全部
ls正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式