• c primer plus 11 复习题


    9、

    #include <stdio.h>
    
    char *s_gets(char *st, int n);
    
    int main(void)
    {
        char st1[100];
        
        s_gets(st1, 100);
        
        puts(st1);
        
        return 0;
    }
    
    char *s_gets(char *st, int n)
    {
        char *ret_val;
        
        ret_val = fgets(st, n, stdin);
        
        if(ret_val)
        {
            while(*st != '
    ' && *st != '')
                st++;
            
            if(*st == '
    ')
                *st = '';
            else
                while(getchar() != '
    ')
                    continue;
        }
        return ret_val;
    }

    10、

    #include <stdio.h>
    
    int strlen2(char *ar);
    
    int main(void)
    {
        char st1[100] = "3sdfad";
        int n;
        
        n = strlen2(st1);
        
        printf("n: %d.
    ", n);
        
        return 0;
    } 
     
    int strlen2(char * ar)
    {
        int  count = 0;
        
        while(*ar)
        {
            count++;
            ar++;
        }
        return count;
    }

    11、

    #include <stdio.h>
    #include <string.h>
    
    #define SIZE 100
    
    char *s_gets(char *st, int n);
    
    int main(void)
    {
        char st1[SIZE];
        
        puts("input the strings.");
        
        s_gets(st1, SIZE);
        
        puts(st1);
        
        return 0;    
    } 
    
    char *s_gets(char *st, int n)
    {
        char *ret_val;
        int i = 0;
        char * find;
        
        
        ret_val = fgets(st, n, stdin);
        
        if(ret_val)
        {
            find = strchr(st, '
    ');
            
            if(find)
                *find = '';
            else
                while(getchar() != '
    ')
                    continue;
        }
        
        return ret_val;
    }

    12、

    #include <stdio.h>
    
    char * null(char * ar);
    
    int main(void)
    {
        char st1[100] = "a f ds";
        char st2[100] = "af ds";
        
        char * temp1, * temp2;
        
        temp1 = null(st1);
        puts(temp1);
        
        temp2 = null(st2);
        puts(temp2);
        
        return 0;
    }
    
    char * null(char * ar)
    {
        while(*ar != ' ')
            ar++;
        
        if(*ar == ' ')
            return ar;
        else
            return NULL;
    }

    13、

    #include <stdio.h>
    #include <string.h>
    #include <ctype.h>
    
    #define ANSWER "GRANT"
    #define SIZE 90
    
    char *s_gets(char *st, int n);
    
    void ToUpper(char *ar);
    
    int main(void)
    {
        char try[SIZE];
        puts("input try:");
        
        s_gets(try, SIZE);
        ToUpper(try);
        
        while(strcmp(try, ANSWER))
        {
            puts("wrong, try again.");
            s_gets(try, SIZE);
            ToUpper(try);
        }
        puts("right!");
        
        return 0;    
    }
    
    char *s_gets(char *st, int n)
    {
        char *ret_val;
        int i = 0;
        
        ret_val = fgets(st, n, stdin);
        
        if(ret_val)
        {
            while(st[i] != '
    ' && st[i] != '')
                i++;
            
            if(st[i] == '
    ')
                st[i] = '';
            else
                while(getchar() != '
    ')
                    continue;
        }
        
        return ret_val;
    }
    
    void ToUpper(char * ar)
    {
        while(*ar != '')
        {
            *ar = toupper(*ar);
            ar++;
        }
    }

  • 相关阅读:
    在其他机器上安装mysql和hive后设置hive元数据存储为mysql
    MapReduce作业切片和Shuffle
    sns 批量清除脚本
    PHP 汉字 转换成 拼音
    PHPCMS V9 和其他应用同步
    nginx启动,重启,关闭命令
    Linux下zip unzip的用户示例 解压到指定目录
    nginx phpcms rewrite规则
    javascript 里面嵌套方法
    数制及其转换
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/15306437.html
Copyright © 2020-2023  润新知