| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 280 人关注过本帖
标题:各位帮忙分析一下哪里出了问题,关于一个字符串中输出整数的问题
只看楼主 加入收藏
千树
Rank: 1
等 级:新手上路
帖 子:62
专家分:1
注 册:2013-11-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
各位帮忙分析一下哪里出了问题,关于一个字符串中输出整数的问题
#include<stdio.h>
#include<string.h>
int main()
{
 char a[100];
 int b[100]={0},i,*x=b,n=0;
 char *p=a;
 gets(a);
 for(i=0;*(p+i)!='\0';i++)
 if(*(p+i)>=48&&*(p+i)<=57)
 {
     *x=*(p+i)-'0';
     i++;
     while(*(p+i)>=48&&*(p+i)<=57)
     {
        *x=*x*10+(*(p+i)-'0');
        i++;
     }
     n++;
     x++;
 }
 printf("共有%d个整数。\n",n);
for(i=0;i<n;i++)
 printf("%d\t",*(x+i));
printf("\n");
return 0;
}
搜索更多相关主题的帖子: include 字符串 
2013-12-03 08:29
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:5 
打印整数前x指向哪里?
for(i=0;i<n;i++)
printf("%d\t",*(x+i));

总有那身价贱的人给作业贴回复完整的代码
2013-12-03 08:36
千树
Rank: 1
等 级:新手上路
帖 子:62
专家分:1
注 册:2013-11-4
收藏
得分:0 
回复 2楼 embed_xuel
呃,不是数组b吗?
2013-12-03 08:44
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:5 
我在2楼都这么提示了你在3楼问之前能再看代码想一想吗?

总有那身价贱的人给作业贴回复完整的代码
2013-12-03 08:48
ytlcainiao
Rank: 2
等 级:论坛游民
帖 子:48
专家分:74
注 册:2013-11-28
收藏
得分:10 
你这个有逻辑错误,执行完后x已经执行到输入的后一个单元中,假如你输入了3个数放在b[0] b[1] b[2]中,执行完后 x指向b[3]了,所以输出都是0 即输出了b[3]
b[4] b[5];
打印整数前x指向哪里?
for(i=0;i<n;i++)
printf("%d\t",b[i]);

或者打印整数前x指向哪里?
for(i=0;i<n;i++)
printf("%d\t",*(x-n+i));
2013-12-03 10:40
快速回复:各位帮忙分析一下哪里出了问题,关于一个字符串中输出整数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045083 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved