输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到数组a中,统计共有多少个整数,并输出这些数

陈思有 2011-03-28 06:22:33

#include <stdio.h>
void main()
{
void sum(char *p);
char s[50],*p=s;
gets(s);
sum(p);
}

void sum(char *p)
{
int a[10],i,j=0,b=0;
for(i=0; *(p+i)!='\0'; i++)
{
if(*(p+i)>='0'&&*(p+i)<='9')
{
b=*(p+i)-48+b*10;
if (*(p+i+1)<'0'&&*(p+i+1)>'9')
{
a[j]=b;
j++;
}
}




jf445fjk4545dfj
a[0]=445,a[1]=4545


可以通过,但是执行时没有输出
}
for(i=0; i<j; i++)
printf("%d ",a[i]);
printf("\n");
}
...全文
7881 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphiwcdj 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 csiyou 的回复:]

怎样修改能将02输出02,而不是2
[/Quote]
这样
int a=2;
printf("%.*d",2,a);// 02
newfarmerchi 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 csiyou 的回复:]
怎样修改能将02输出02,而不是2
[/Quote]
变成数字字符数组
陈思有 2011-03-28
  • 打赏
  • 举报
回复
怎样修改能将02输出02,而不是2
bdmh 2011-03-28
  • 打赏
  • 举报
回复
经测试,输出正常
newfarmerchi 2011-03-28
  • 打赏
  • 举报
回复 2

#include <stdio.h>
void main()
{
void sum(char *p);
char s[50],*p=s;
gets(s);
sum(p);
}

void sum(char *p)
{
int a[10],i,j=0,b=0;
for(i=0; *(p+i)!='\0'; i++)
{
if(*(p+i)>='0'&&*(p+i)<='9')
{
b=*(p+i)-48+b*10;
if (*(p+i+1)<'0'||*(p+i+1)>'9')//||
{
a[j]=b;
j++;
b=0;
}
}
}
for(i=0; i<j; i++)
printf("%d ",a[i]);
printf("\n");
}

hhh_hao 2011-03-28
  • 打赏
  • 举报
回复
代码贴得有问题,

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧