第 14 章 结构和其他数据形式(names3)
2018-06-18 03:46:01来源:未知 阅读 ()
1 /*----------------------------------- 2 names3.c -- 使用指针和 malloc() 3 -----------------------------------*/ 4 5 #include <stdio.h> 6 #include <string.h> //提供 strcpy()、strlen() 原型 7 #include <stdlib.h> //提供 malloc()、free() 原型 8 9 #define SLEN 81 10 11 struct namect 12 { 13 char *fname; //fname、lname 分别保存内存分配的地址 14 char *lname; 15 int letters; 16 }; 17 18 void getinfo(struct namect *); //分配内存 19 void makeinfo(struct namect *); 20 void showinfo(const struct namect *); 21 void cleanup(struct namect *); 22 char* s_gets(char *st, int n); 23 24 int main() 25 { 26 struct namect person; 27 28 getinfo(&person); 29 makeinfo(&person); 30 showinfo(&person); 31 cleanup(&person); 32 33 return 0; 34 } 35 36 void getinfo(struct namect *pst) 37 { 38 char temp[SLEN]; 39 40 printf("Please enter your first name.\n"); 41 42 s_gets(temp, SLEN); 43 pst->fname = (char*)malloc((strlen(temp) + 1) * sizeof(char)); 44 strcpy(pst->fname, temp); 45 46 printf("Please enter your last name.\n"); 47 48 s_gets(temp, SLEN); 49 pst->lname = (char*)malloc((strlen(temp) + 1) * sizeof(char)); 50 strcpy(pst->lname, temp); 51 } 52 53 void makeinfo(struct namect *pst) 54 { 55 pst->letters = strlen(pst->fname) + strlen(pst->lname); 56 } 57 58 void showinfo(const struct namect *pst) 59 { 60 printf("%s %s, your name contains %d letters.\n" 61 , pst->fname, pst->lname, pst->letters); 62 } 63 64 void cleanup(struct namect *pst) 65 { 66 free(pst->fname); 67 free(pst->lname); 68 } 69 70 char* s_gets(char *st, int n) 71 { 72 char *ret_val; 73 char *find; 74 75 if (ret_val = fgets(st, n, stdin)) 76 { 77 if (find = strchr(st, '\n')) 78 *find = '\0'; 79 else 80 while (getchar() != '\n') continue; 81 } 82 83 return ret_val; 84 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 关于各种不同开发语言之间数据加密方法(DES,RSA等)的互通的 2020-06-07
- C++ 共用体 2020-06-05
- C语言程序结构 2020-05-31
- 数据结构—链表 2020-05-29
- Qt做Tcp数据传输 2020-05-26
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash