第 14 章 结构和其他数据形式(names)
![](/assets/blank.gif)
![](/assets/blank.gif)
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
![](/assets/blank.gif)
![](/assets/blank.gif)
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)相关推荐
- 第14章 结构和其他数据形式 14.12 typedef 简介
2019独角兽企业重金招聘Python工程师标准>>> typedef工具是一种高级数据特性,它使您能够为某一类型创建您自己的名字.在这方面,它和#define相似,但是它们有3个不 ...
- 《C Primer Plus》第十四章——结构和其他数据形式
文章目录 结构和其他数据形式 本章内容 示例问题:创建图书目录 建立结构声明 定义结构变量 初始化结构 访问结构成员 结构的初始化器 结构数组 声明结构数组 标识结构数组的成员 程序讨论 嵌套结构 指 ...
- 第十四章 结构和其他数据形式
GitHub地址,欢迎 star 文章目录 14.1 示例问题:创建图书目录 14.2 建立结构声明 14.3 定义结构变量 14.3.1 初始化结构 注意 初始化结构和类别储存期 14.3.2 结构 ...
- C Primer Plus (第五版) 第十四章 结构和其它数据形式 编程练习
重做复习题3.但用月份名的拼写代替月份号(别忘了可以使用strcmp()). #include <stdio.h> #include <string.h>struct mont ...
- C语言基础:结构和其他数据形式
5# C语言基础:结构和其他数据形式 文章目录 Tips1:<img src="https://dl4.weshineapp.com/gif/20170410/5e0f6e9365be ...
- 【机器学习实战】第14章 利用SVD简化数据
第14章 利用SVD简化数据 SVD 概述 奇异值分解(SVD, Singular Value Decomposition):提取信息的一种方法,可以把 SVD 看成是从噪声数据中抽取相关特征.从生物 ...
- 【学习笔记】《深入浅出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 创建时间差 ...
- 《Python数据分析与挖掘实战》第14章——基于基站定位数据的商圈分析(层次聚类)
本文是基于<Python数据分析与挖掘实战>的实战第14章<基于基站定位数据的商圈分析>做的分析. 1 挖掘背景及目标 从某通信运营商提供的特定接口解析得到用户的定位数据.利用 ...
- C语言再学习 -- 结构和其他数据形式
一.结构体 结构体可以用来创建新的数据类型,这种数据类型可以把多个其他类型合并成一个整体,采用结构体声明的变量叫做结构变量,结构体需要先声明然后才能使用,声明结构体需要使用struct关键字,结构体声 ...
最新文章
- ROS、realsense开发常用命令汇总
- c语言字符串机考题,2016全国计算机二级《C语言》机考试题及答案
- Struts和SpringMVC两种MVC框架比较
- 解决 minicom 不能接收键盘输入问题
- 搜寻文件下包含某个字符串的文件
- 产品成功之后的品牌策略
- linux下scp远程拷贝文件无需输入密码工具之expect
- 【Keras速成】Keras图像分类从模型自定义到测试
- linux中用户忘记root的密码--ubuntu版本
- AntDesign Pro + .NET Core 实现基于JWT的登录认证
- 吴恩达深度学习 —— 4.3 核对矩阵的维数
- Spring Boot:Exception parsing document: template=index, line 7 - column 3
- springboot vue组件写的个人博客系统
- 今生梦一场,思念你的殇
- 使用Python实现Linux命令的批量执行
- 禁用计算机usb设备,电脑如何设置禁止使用USB设备以及电脑怎样屏蔽U盘使用功能...
- 微信公众号的用户运营?
- MySQL:HINT
- css中脱离标准流的三种方式,CSS的三种手段让元素脱离标准本文档流
- 利用Xshell修改Linux默认SSH端口号等详细配置
热门文章
- 路由 命令 linux,linux路由命令
- html form中多个div,在react里最多只能有几个div
- R语言︱文本挖掘——词云wordcloud2包
- Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
- Linux基础命令---ftp
- EF多对多关系中如何利用关系表(EF4.1 Many to Many involves junction table details)
- 应用联合服务 云计算拉近应用和操作距离
- 现实迷途 第二十五章 重见故人
- 聚焦惠普质量问题是否带来行业变化?
- django中处理表单实例