1 *---------------------------------
 2     names1.c -- 使用指向结构的指针
 3 ---------------------------------*/
 4
 5 #include <stdio.h>
 6 #include <string.h>
 7
 8 #define NLEN 30
 9
10 struct namect
11 {
12     char fname[NLEN];
13     char lname[NLEN];
14     int letters;
15 };
16
17 void getinfo(struct namect *);
18 void makeinfo(struct namect *);
19 void showinfo(const struct namect *);
20 char* s_gets(char *st, int n);
21
22 int main()
23 {
24     struct namect person;
25
26     getinfo(&person);
27     makeinfo(&person);
28     showinfo(&person);
29
30     return 0;
31 }
32
33 void getinfo(struct namect *pst)
34 {
35     printf("Please enter your first name.\n");
36
37     s_gets(pst->fname, NLEN);
38
39     printf("Please enter your last name.\n");
40
41     s_gets(pst->lname, NLEN);
42 }
43
44 void makeinfo(struct namect *pst)
45 {
46     pst->letters = strlen(pst->fname) + strlen(pst->lname);
47 }
48
49 void showinfo(const struct namect *pst)
50 {
51     printf("%s %s, your name contains %d letters.\n"
52         , pst->fname, pst->lname, pst->letters);
53 }
54
55 char* s_gets(char *st, int n)
56 {
57     char *ret_val;
58     char *find;
59
60     if (ret_val = fgets(st, n, stdin))
61     {
62         if (find = strchr(st, '\n'))            //查找换行符
63             *find = '\0';
64         else
65             while (getchar() != '\n') continue;    //处理输入行的剩余字符
66     }
67
68     return ret_val;
69 }

names1.c

 1 /*------------------------------
 2     names2.c -- 传递并返回结构
 3 ------------------------------*/
 4
 5 #include <stdio.h>
 6 #include <string.h>
 7
 8 #define NLEN 30
 9
10 struct namect
11 {
12     char fname[NLEN];
13     char lname[NLEN];
14     int letters;
15 };
16
17 struct namect getinfo(void);
18 struct namect makeinfo(struct namect);
19 void showinfo(struct namect);
20 char* s_gets(char *st, int n);
21
22 int main()
23 {
24     struct namect person;
25
26     person = getinfo();
27     person = makeinfo(person);
28     showinfo(person);
29
30     return 0;
31 }
32
33 struct namect getinfo(void)
34 {
35     struct namect temp;
36
37     printf("Please enter your first name.\n");
38
39     s_gets(temp.fname, NLEN);
40
41     printf("Please enter your last name.\n");
42
43     s_gets(temp.lname, NLEN);
44
45     return temp;
46 }
47
48 struct namect makeinfo(struct namect info)
49 {
50     info.letters = strlen(info.fname) + strlen(info.lname);
51     return info;
52 }
53
54 void showinfo(struct namect info)
55 {
56     printf("%s %s, your name contains %d letters.\n"
57         , info.fname, info.lname, info.letters);
58 }
59
60 char* s_gets(char *st, int n)
61 {
62     char *ret_val;
63     char *find;
64
65     if (ret_val = fgets(st, n, stdin))
66     {
67         if (find = strchr(st, '\n'))    //查找换行符,如果找到换行符,将换行符成空字符
68             *find = '\0';
69         else
70             while (getchar() != '\n') continue;    //处理输入行的剩余部分
71     }
72
73     return ret_val;
74 }

names2.c

转载于:https://www.cnblogs.com/web1013/p/9177664.html

第 14 章 结构和其他数据形式(names)相关推荐

  1. 第14章 结构和其他数据形式 14.12 typedef 简介

    2019独角兽企业重金招聘Python工程师标准>>> typedef工具是一种高级数据特性,它使您能够为某一类型创建您自己的名字.在这方面,它和#define相似,但是它们有3个不 ...

  2. 《C Primer Plus》第十四章——结构和其他数据形式

    文章目录 结构和其他数据形式 本章内容 示例问题:创建图书目录 建立结构声明 定义结构变量 初始化结构 访问结构成员 结构的初始化器 结构数组 声明结构数组 标识结构数组的成员 程序讨论 嵌套结构 指 ...

  3. 第十四章 结构和其他数据形式

    GitHub地址,欢迎 star 文章目录 14.1 示例问题:创建图书目录 14.2 建立结构声明 14.3 定义结构变量 14.3.1 初始化结构 注意 初始化结构和类别储存期 14.3.2 结构 ...

  4. C Primer Plus (第五版) 第十四章 结构和其它数据形式 编程练习

    重做复习题3.但用月份名的拼写代替月份号(别忘了可以使用strcmp()). #include <stdio.h> #include <string.h>struct mont ...

  5. C语言基础:结构和其他数据形式

    5# C语言基础:结构和其他数据形式 文章目录 Tips1:<img src="https://dl4.weshineapp.com/gif/20170410/5e0f6e9365be ...

  6. 【机器学习实战】第14章 利用SVD简化数据

    第14章 利用SVD简化数据 SVD 概述 奇异值分解(SVD, Singular Value Decomposition):提取信息的一种方法,可以把 SVD 看成是从噪声数据中抽取相关特征.从生物 ...

  7. 【学习笔记】《深入浅出Pandas》第14章:Pandas时序数据

    文章目录 14.1 固定时间 14.1.1 时间的表示 14.1.2 创建时间点 14.1.3 属性 14.1.4 时间的方法 14.1.5 时间缺失值 14.2 时长数据 14.2.1 创建时间差 ...

  8. 《Python数据分析与挖掘实战》第14章——基于基站定位数据的商圈分析(层次聚类)

    本文是基于<Python数据分析与挖掘实战>的实战第14章<基于基站定位数据的商圈分析>做的分析. 1 挖掘背景及目标 从某通信运营商提供的特定接口解析得到用户的定位数据.利用 ...

  9. C语言再学习 -- 结构和其他数据形式

    一.结构体 结构体可以用来创建新的数据类型,这种数据类型可以把多个其他类型合并成一个整体,采用结构体声明的变量叫做结构变量,结构体需要先声明然后才能使用,声明结构体需要使用struct关键字,结构体声 ...

最新文章

  1. 接口的特点及,抽象类与接口的区别
  2. 那个专攻JVM的00后求职者,薪水比我的还高···
  3. 图模型概述:三种分布(联合、条件、边缘分布)
  4. 基于水色图像的水质评价
  5. QT5.14.2基于PCL1.11.1显示点云(基于Windows VS2019开发环境)
  6. 当async/await遇上forEach
  7. python做图片浏览器_保护隐私,用Python打造自己的照片浏览器
  8. html css 银行卡,CSS
  9. Ubuntu16.04 安装Caffe教程
  10. cad转shp 奥维_奥维互动地图浏览器中导入导出CAD文件的操作教程
  11. 线性混合效应模型Linear Mixed-Effects Models的部分折叠Gibbs采样
  12. python 经典图书排行榜_书榜 | 计算机书籍(1.7-1.13)销售排行榜
  13. html embed自动播放,html embed标签怎么用
  14. 前端实现扫码数据展示
  15. centos7挖矿病毒(xmrig,javs)清理
  16. GPRS连接阿里云物联网平台五
  17. 初识Json浅扯ajax
  18. 2020年实体店怎么营销推广获客
  19. 实时股票接口行情数据 api (新浪雅虎等提供)
  20. 2007年世界顶级杀毒软件排名

热门文章

  1. php mysql追踪器_zf框架的数据库追踪器使用示例
  2. 装了linux后windows被破坏了,windows下可以破坏linux的数据么-
  3. python中matplotlib库饼图_python 使用 matplotlib.pyplot来画柱状图和饼图
  4. Spark内核解析之一:内核概述
  5. Paddle实现NLP-文本分类
  6. PCA(主成分分析)和FA(因子分析)区别
  7. [python]python logging 模块
  8. python学习------面向对象进阶
  9. POJ 1128 Frame Stacking 拓扑排序+暴搜
  10. 活着,总有你看不惯的人,也有看不惯你的人.