《c primer plus》编程练习回顾-第十一章(上)

1.

#include<stdio.h>
void input(char *p, int b);
int main(void)
{
    char ch[60];
    int n;
    printf("Please input the number:");
    scanf("%d", &n);
    getchar();
    input(ch, n);
    puts(ch);
    return 0;
}
void input(char *p, int b)
{
    int i;
    for (i = 0; i < b; i++)
        p[i] = getchar();
    p[i] = ‘\0‘;
}

2.

#include<stdio.h>
#include<ctype.h>
void input(char *p, int b);
int main(void)
{
    char ch[60];
    int n;
    printf("Please input the number:");
    scanf("%d", &n);
    getchar();
    input(ch, n);
    puts(ch);
    return 0;
}
void input(char *p, int b)
{
    int i;
    for (i = 0; i < b; i++)
    {
        p[i] = getchar();
        if (isspace(p[i]))
            break;
    }
    p[i] = ‘\0‘;
}

3.

#include<stdio.h>
#include<ctype.h>
#include<stdbool.h>
void fun(void);
int main(void)
{
    fun();
    return 0;
}
void fun(void)
{
    char a[40],ch;
    int i = 0;
    bool in_word=true;
    while (in_word && (ch=getchar()))
    {

        if (isalpha(ch))
        {
            a[i] = ch;
            i++;
            in_word = false;
        }
    }
    while (in_word == 0 && (ch=getchar()))
    {
        if (!isalpha(ch))
        {
            in_word = 1;
            a[i] = ‘\0‘;
            i++;
        }
        a[i] = ch;
        i++;
    }
    printf("%s\n", a);
}

4.

#include<stdio.h>
#include<string.h>
char *fun(char *, char);
int main(void)
{
    char str[81], ch;
    char *p;
    printf("Please input the string:");
    gets(str);
    printf("Plese input a char:");
    scanf("%c", &ch);
    p = fun(str, ch);
    if (p)
    {
        printf("Find!");
    }
    else
        puts("Can‘t find");
    return 0;
}
char *fun(char *a, char b)
{
    int i;
    char *q;
    for (i = 0; i <= strlen(a); i++)
    {
        if (*(a + i) == b)
        {
            q = a + i;
            return q;
        }
    }
    if (i == (strlen(a)+1))
        q = NULL;
    return q;
}

5.

#include<stdio.h>
#include<string.h>
int wit_lun(char *, char);
int main(void)
{
    char str[81], ch;
    int p;
    printf("Please input a string:");
    gets(str);
    printf("Please input a char:");
    scanf("%c", &ch);
    p = wit_lun(str, ch);
    if (p)
        printf("Find\n");
    else
        printf("Can‘t find\n");
    return 0;
}
int wit_lun(char *b, char c)
{
    int i;
    char *q;
    for (i = 0; i <= strlen(b); i++)
        if (*(b + i) == c)
            return 1;
        if (i == strlen(b) + 1)
            return 0;
}

发现自己水平还是差很多,这章内容比较难,分三个部分写或许负担会轻些。

时间: 2024-08-10 13:23:01

《c primer plus》编程练习回顾-第十一章(上)的相关文章

《Java并发编程实战》第十一章 性能与可伸缩性 读书笔记

造成开销的操作包括: 1. 线程之间的协调(例如:锁.触发信号以及内存同步等) 2. 增加的上下文切换 3. 线程的创建和销毁 4. 线程的调度 一.对性能的思考 1 性能与可伸缩性 运行速度涉及以下两个指标: 某个指定的任务单元需要"多快"才能处理完成.计算资源一定的情况下,能完成"多少"工作. 可伸缩性: 当增加计算资源时(例如:CPU.内存.存储容器或I/O带宽),程序的吞吐量或者处理能力能相应地增加. 2 评估各种性能权衡因素 避免不成熟的优化.首先使程序正

c primer plus 编程练习答案第四章

最近在研读c primer plus,小白一枚,把自己做的答案写出来,望指正. 编程环境 visual studio 2010.第五章. 1 /* Programming Exercise 5-1 */ 2 #include<stdio.h> 3 #define N 60 4 int main(void) 5 {int a,b,c; 6 while(1) 7 {printf("please enter minute\n"); 8 scanf("%d",&

《C++编程思想》 第十一章 运算符重载 (习题+解答)

一.相关代码 1. /*运算符重载语法*/ /*OPOVER.cpp*/ /*这两个重载的运算符被定义为内联成员函数.对于二元运算符,单个参数是出现在运算符 右侧的那个.当一元运算符被定义为成员函数时,没有参数.成员函数被运算符左侧的对象调 用. 对于非条件运算符(条件运算符通常返回一个布尔值),如果两个参数是相同的类型,希 望返回和运算相同类型的对象或引用.如果它们不是相同类型,它作什么样的解释就取决于程 序设计者.用这种方法可以组合复杂的表达式: K += I + J ; 运算符+号产生一个

UNIX网络编程卷一:第十一章 名字与地址转换

名字和数值地址间的转换函数(IPV4): gethostbyname gethostbyaddr 服务名字和端口号之间转换: getservbyname getservbyport 协议无关函数: getaddrinfo  : 主机名字和IP之间的转换 getnameinfo : 服务名字和端口号 实践代码:https://github.com/huntinux/unpvol1/tree/master/11chp

Python 编程快速上手 第十一章 Web scrapping

前言 这一章讲了如何在 Web 上抓取相关的信息,工具是三个模块: webbrowser 模块:用于打开浏览器指定页面 requests 模块:用于下载文件 Beautiful Soup 模块:用于解析 HTML selenium 模块:用于自动控制一个 Web 浏览器,比如模拟鼠标点击链接,键盘输入等等. webbrowser 模块 导入:import webbrowser格式:webbrowser.open('http://url.com')功能:它的 open() 函数可用于打开一个网站.

C Primer Plus 第十一章 习题总结……2015.5.10

C Primer Plus         第五版 第十一章  字符串和字符串函数 1.没有加上字符串结尾标志 空字符'\0': 2.#include<stdio.h> int main(void) { char note[]="See you at snack bar: "; char *ptr; ptr=note; puts(ptr); puts(++ptr); note[7]='\0'; puts(note); puts(++ptr); return 0; } 3.#

第二十一章

孔德之容,唯道是从.道之为物,唯望唯沕.沕呵望呵,中有象呵:望呵沕呵,中有物呵:幽呵冥呵,中有精呵:其精甚真,其中有信.自今及古,其名不去,以顺众父.吾何以知众父之然也?以此. “   孔德之容”,大德的这种运动“唯道是从”,它只是去追随道的运转,或者是按照道的这个运转规律去运转,所以老子在这讲出来道是德的内在动力,德是道的外在体现,大德,德行的这种运动完全是按照道的规律去运转的,叫唯道是从.您如果懂得了道的原理,您就能够从容的去做这个德了 沕是深远的意思,那个望是辽阔辽远的意思,没有边界,这个

C Primer Plus (第五版) 第十一章 字符串和字符串函数 编程练习

第十一章 字符串和字符串函数 编程练习 设计并测试一个函数,可以输入读取n个字符(包括空格.制表符.换行符),把结果存储在一个数组中,这个数组的地址通过参数来传递. #include <stdio.h> #define LEN 80 char * getch(char a[], int n); int main(void) { char a[LEN]; if (getch(a, 4)) puts(a); else printf("没有读取\n"); return 0; }

我的编程之路(二十一) 规范

不知不觉一周就过去了,这周细想真的没有做成什么,因为几乎都是做了改,改了做··· 1.代码规范 以前自认为自己很注重代码规范,但是没有想到自己项目组的开发会将代码规范审查的那么严谨,这突然让我想到之前说到程序员都喜欢追求完美,都喜欢自己和自己的风格一致,否则就会觉得别扭,不过与此不同,这是团队开发,代码规范是为了统一风格,便于别人的阅读与后人的修改与维护,虽然因为这我前前后后改了三次dao层的代码,一是要用公司封装的借口,二是要把异常处理都放在这一层或者service层,三是要用公司自己写的工具