当前位置: 代码迷 >> C语言 >> 请人检查一下程序哪儿由问题
  详细解决方案

请人检查一下程序哪儿由问题

热度:242   发布时间:2008-03-08 15:11:16.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[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  

----------------解决方案--------------------------------------------------------
注意大小写。。。。
----------------解决方案--------------------------------------------------------
你是说getline(line,len);这一行吗  我改成大写后程序编译能通过 但是得不到所要求的结果
----------------解决方案--------------------------------------------------------
/********************************************************/
/*    程序: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);
}
----------------解决方案--------------------------------------------------------