| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 733 人关注过本帖
标题:请人检查一下程序哪儿由问题
只看楼主 加入收藏
mxtk
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-8
收藏
 问题点数:0 回复次数:3 
请人检查一下程序哪儿由问题
/********************************************************/
/*    程序:1.cpp                                       */
/*    作者:mxtk                                        */
/*    功能:编写一个程序,将用户输入的由数字字符和非    */
/*          数字字符组成的字符串中的数字提取出来。例如,*/
/*          输入“sjd48fioa4525sdf33w",则产生的数字分别 */
/*          为48、4525、和33。                          */
/*    时间:2008年3月8日                                */
#include<stdio.h>
#include<stdlib.h>
# define LEN 256
int getline(char *s,int len);
void main()
{
    char line[LEN],b[20],*ptr1,*ptrb;
    int n=0,j,a[50];
    getline(line,len);
    ptr1=line;
    while(*ptr1!='\0')
    {
        ptrb=b;
        for(j=0;*ptr1<='9';ptr1++,ptrb++,j++)
            *ptrb=*ptr1;
        if(j>0)
        {
            *ptrb='\0';
            *(a+n)=atoi(b);
            n++;
        }
        if(*ptr1!='\0')
            ptr1++;
    }
    printf("output number:\n");
    for(j=0;j<=n;j++)
        printf("%d\n",*(a+j));
}
int getline(char *s,int len)
{
    int c;
    printf("input number:");
    char *p=s;
    while(--len>0&&(c=getchar())!='\n')
        *s+=c;
    *s='\0';
    return(s-p);
}


我在VC6.0下编译时提示说 指针\1.cpp(17) : error C2065: 'len' : undeclared identifier
执行 cl.exe 时出错.
搜索更多相关主题的帖子: 数字 字符 检查 include 
2008-03-08 15:11
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
注意大小写。。。。

学习需要安静。。海盗要重新来过。。
2008-03-08 15:25
mxtk
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-8
收藏
得分:0 
你是说getline(line,len);这一行吗  我改成大写后程序编译能通过 但是得不到所要求的结果
2008-03-08 17:38
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/********************************************************/
/*    程序:1.cpp                                       */
/*    作者:mxtk                                        */
/*    功能:编写一个程序,将用户输入的由数字字符和非    */
/*          数字字符组成的字符串中的数字提取出来。例如,*/
/*          输入“sjd48fioa4525sdf33w",则产生的数字分别 */
/*          为48、4525、和33。                          */
/*    时间:2008年3月8日                                */
#include<stdio.h>
#include<stdlib.h>
#define LEN 256
int getline(char *s,int len);

void main()
{
    char line[LEN],b[30],*ptr1,*ptrb;
    int n=0,j,a[50];
    getline(line,LEN);
    ptr1=line;
    while(*ptr1!='\0')
    {
    ptrb=b;
    for(j=0;*ptr1>='0'&&*ptr1<='9';ptr1++,ptrb++,j++)
        *ptrb=*ptr1;
    if(j>0)
    {
        *ptrb='\0';
        *(a+n)=atoi(b);
        n++;
    }
    if(*ptr1!='\0')
        ptr1++;
    }
    printf("output number:\n");
    for(j=0;j<n;j++)
    printf("%d\n",*(a+j));
    printf("%d",n);
}

int getline(char *s,int len)
{
    char c;
    char *p=s;
   
    printf("input number:");

    while(--len>0&&(c=getchar())!='\n')
    *s++=c;
    *s='\0';
    return(s-p);
}
2008-03-08 18:57
快速回复:请人检查一下程序哪儿由问题
数据加载中...
 
   



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

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