| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1262 人关注过本帖
标题:输入一个字符串,将其中连续的数字作为一个整数,依次存放在数组 a[10] 中。 ...
只看楼主 加入收藏
朔源
Rank: 1
等 级:新手上路
帖 子:105
专家分:4
注 册:2015-9-22
结帖率:90%
收藏
 问题点数:0 回复次数:1 
输入一个字符串,将其中连续的数字作为一个整数,依次存放在数组 a[10] 中。如123放在a[0],456放在a[1]。并统计有多少个整数。运行结果有差别,有疑
#include<stdio.h>
#include<conio.h>
int main(void)
{
    char str[100],*pstr;
    int i,j,k,m,e10,digit,ndigit,a[10],*pa;
    printf("input a string:\n");
    gets(str);
    printf("\n");
    pstr = &str[0];
    pa = &a[0];
    ndigit = 0;//代表多少个整数。
    i = 0;
    j = 0;//代表连续数字的位数。
    while(*(pstr+i) != '\0')
    {
        if(*(pstr+i)>='0' && *(pstr+i)<='9')
            j++;
        else
        {
            if(j > 0)
            {
                digit = *(pstr+i-1)-48;//将个位数赋值给digit。
                k = 1;
                while(k < j)//将两位以上数的其他位的数值给digit。
                {
                    e10 = 1;
                    for(m = 1;m <= k;m++)
                        e10 = e10 * 10;
                    digit = digit + (*(pstr+i-1-k)-48) * e10;
                    k++;
                }
                *pa = digit;
                ndigit++;
                pa++;
                j = 0;
            }
        }
        i++;
    }
    printf("there are %d numbers in this line.they are:\n",ndigit);
    j = 0;
    pa = &a[0];
    for(j = 0;j < ndigit;j++)
        printf("%d\n",*(pa+j));
    getch();
    return(0);
}

题目是:输入一个字符串,将其中连续的数字作为一个整数,依次存放在数组 a[10] 中。如123放在a[0],456放在a[1]。并统计有多少个整数。
    问题是:
           输入" a123x456 17960?302tab5876 "这字符串,输出应该是 5 个整数:123、456、17960、302、5876.可是输出的就是只有 4 个
           只有123、456、17960、302。没有5876。 ndigit 也只有4个。后面的5876好像就没有检查过去。。
本人看C语言才2个月,什么检测方法也不知道。就是找不出为什么。。。
下面是输入数据后运行的结果。没有5876.求各位解惑?
     input a string:
a123x456 17960?302tab5876

there are 4 numbers in this line.they are:
123
456
17960
302
Press any key to continue
搜索更多相关主题的帖子: include 字符串 统计 
2015-11-17 12:42
朔源
Rank: 1
等 级:新手上路
帖 子:105
专家分:4
注 册:2015-9-22
收藏
得分:0 
疑惑解开了。如果输入的字符串是数字结尾的话。else 后面的就不运行了,5876自然也就出不来了。这程序不完整。不好意思了。。。。
2015-11-17 13:24
快速回复:输入一个字符串,将其中连续的数字作为一个整数,依次存放在数组 a[10 ...
数据加载中...
 
   



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

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