c primer plus 10 复习题

 

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 != '\n' && *st != '\0')
            st++;
        
        if(*st == '\n')
            *st = '\0';
        else
            while(getchar() != '\n')
                continue;
    }
    return ret_val;
}

c primer plus 10 复习题

 

10、

#include <stdio.h>

int strlen2(char *ar);

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

c primer plus 10 复习题

 

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, '\n');
        
        if(find)
            *find = '\0';
        else
            while(getchar() != '\n')
                continue;
    }
    
    return ret_val;
}

c primer plus 10 复习题

 

上一篇:c primer plus 7编程练习


下一篇:C Primer Plus(第6版) 第九章 编程练习及参考答案