zoukankan      html  css  js  c++  java
  • 字符串输入的拓展

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    const size_t BUFFER_LEN =128;
    const size_t NUM_P =3;
    char buffer[128];
    char *pS[3]={NULL};
    char *pbuffer =buffer ;
    int i;
    int main()
    {
        printf("
     You can enter up to %u message each up to %u ge ",NUM_P,BUFFER_LEN-1);
        
        for (i=0;i<NUM_P;i++)
        {
            pbuffer=buffer ;
            printf("
      Enter %s message ",i>0?"another":"a");
            
            while ((pbuffer-buffer<BUFFER_LEN-1)&&(*(pbuffer++)=getchar())!='
    ');
            
            if((pbuffer-buffer)<2)
                break;
            
            if((pbuffer-buffer)==BUFFER_LEN&&*(pbuffer-1)!='
    ')
            {
                printf("String too long ");
                i--;
                continue;
                
            }
            
            
            
            *(pbuffer-1)='';
            
            pS[i]=(char*)malloc(pbuffer-buffer);
            
            if(pS[i]==NULL)
            {
                printf("
     OUT of memory ");
                return 1;            
            }
            
            strcpy(pS[i],buffer);    
            
        }
        
        printf("
     In reverse order .the strings you entered are :
    ");
        
        while (--i >= 0)
        {
            printf("
    %s",pS[i]);
            free(pS[i]);
            pS[i]=NULL;
        }
        
        system("pause");
        return 0;
        
        
        
        
    }
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    const size_t BUFFER_LEN =10;
    const size_t NUM_P =3;
    char buffer[10];
    char *pS[3]={NULL};
    char *pbuffer =buffer ;
    int i;
    
    
    
    int main()
    {
        printf("
     You can enter up to %u message each up to %u ge ",NUM_P,BUFFER_LEN-1);
        
        for (i=0;i<NUM_P;i++)//遍历指针数组
        {
            pbuffer=buffer ;//把数组首地址给指针
            printf("
      Enter %s message ",i>0?"another":"a");
            
            while ((pbuffer-buffer<BUFFER_LEN-1)&&(*(pbuffer++)=getchar())!='
    ');
            /*
            pbuffer-buffer=0    1     pbuffer+1 
            
            pbuffer-buffer=1     2     pbuffer+1
            
            
            pbuffer-buffer=BUFFER_LEN-2     BUFFER_LEN-1   pbuffer+1
    
                pbuffer-buffer=BUFFER_LEN-1   跳出循环  
            
            
            */
            
            
            if((pbuffer-buffer)<2)
                /*
            检查你是否是直接按下回车,那样话,pbuffer-buffer=1 仅仅输入了一个'
    '
            */
            {
                printf("zhiyou huiche yayayayaayaya");
                break;
            }
            
            
            
            if((pbuffer-buffer)==BUFFER_LEN&&*(pbuffer-1)!='
    ')
            {
                printf("String too long ");
                i--;
                continue;
                
            }
            
            
            
            *(pbuffer-1)='';
            
            pS[i]=(char*)malloc(pbuffer-buffer);//分配内存,大小为当前pbuffer指向地址-buffer地址
            
            if(pS[i]==NULL)
            {
                printf("
     OUT of memory ");
                return 1;            
            }
            
            strcpy(pS[i],buffer);    //把字符串复制到新内存中
            
        }
        
        printf("
     In reverse order .the strings you entered are :
    ");
        
        while (--i >= 0)
        {
            printf("
    %s",pS[i]);
            free(pS[i]);
            pS[i]=NULL;
        }
        
        system("pause");
        return 0;
        
        
        
        
    }
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    const size_t BUFFER_LEN =12;
    const size_t NUM_P =3;
    char buffer[12];
    char *pS[3]={NULL};
    char *pbuffer =buffer ;
    int i;
    int main()
    {
        printf("
     You can enter up to %u message each up to %u ge ",NUM_P,BUFFER_LEN-1);
        
        for (i=0;i<NUM_P;i++)
        {
            pbuffer=buffer ;
            printf("
      Enter %s message ",i>0?"another":"a");
            
            printf("
    @pbuffer-buffer%d
    ",pbuffer-buffer);
            printf("
    @@pbuffer%d
    ",pbuffer);
            printf("
    @@@pbuffer%s
    ",pbuffer);//可以打印,打印的是上一次输入的字符串
        
            while ((pbuffer-buffer<BUFFER_LEN-1)&&(*(pbuffer++)=getchar())!='
    ')//在不按
    时候才自加,换句话讲,'
    '不会计数
            {
            printf("
    >pbuffer-buffer%d
    ",pbuffer-buffer);
            printf("
    >>pbuffer%d
    ",pbuffer);
            printf("
    >>>pbuffer%s
    ",pbuffer);//打印不出,大概是因为没有内存吧??
    
            };
            
            if((pbuffer-buffer)<2)
                break;
            
            if((pbuffer-buffer-BUFFER_LEN)&&*(pbuffer-1)!='
    ')
            {
                printf("String too long ");
                i--;
                continue;
                
            }
            
            
            
          
            
            pS[i]=(char*)malloc(pbuffer-buffer);
            
            if(pS[i]==NULL)
            {
                printf("
     OUT of memory ");
                return 1;            
            }
            
            strcpy(pS[i],buffer);    
            
        }
        
        printf("
     In reverse order .the strings you entered are :
    ");
        
        while (--i >= 0)
        {
            printf("
    %s",pS[i]);
            free(pS[i]);
            pS[i]=NULL;
        }
        
        system("pause");
        return 0;
        
        
        
        
    }
    
    /*
    
    解决一个问题最好的办法是,提出几个假设,然后设计实验验证他,应用他
    书写为了更好思考,可以整理思路
    
    *************
    最大的恐惧正是恐惧本身。
    **************
    
    
    */
  • 相关阅读:
    用.net开发wap
    MVC3 中使用 Ajax.ActionLink Ajax.BeginForm
    收藏一下这个微软MVP的老外博客
    第三篇:Django的路由系统
    第二篇:Django自定义登录功能
    第一篇:Django简介
    json和pickle序列化模块
    oracle 11gr2 rac修改VIP
    修改监听端口号
    删除磁盘组
  • 原文地址:https://www.cnblogs.com/xinqidian/p/5588778.html
Copyright © 2011-2022 走看看