14.5 结构和其他数据形式:传递结构
来源:互联网 发布:虚拟机安装nginx 编辑:程序博客网 时间:2024/05/29 09:59
输出示例
please enter your first name:wangplease enter your last name:feiwang fei , your name contains 7 letters.
【结构作为参数传递并返回结构】
#include<stdio.h>#include<string.h>#define NLEN 30struct namect { char fname[NLEN]; char lname[NLEN]; int letters;};struct namect getinfo(void);struct namect makeinfo(struct namect);void showinfo(struct namect);char *s_gets(char *st, int n);int main(){ struct namect person; person = getinfo(); person = makeinfo(person); showinfo(person); return 0;}struct namect getinfo(void){ struct namect temp; printf("please enter your first name:\n"); s_gets(temp.fname,NLEN); printf("please enter your last name:\n"); s_gets(temp.lname, NLEN); return temp;}//将结构person作为参数,创建一个新的结构info并将person的值拷贝到此结构struct namect makeinfo(struct namect info){ info.letters = strlen(info.fname) + strlen(info.lname); //统计完字母个数后,结果保存在info中,通过return 将info的值拷贝到person中,即返回一个结构 return info;}void showinfo(struct namect info){ printf("%s %s , your name contains %d letters.\n", info.fname, info.lname, info.letters);}char *s_gets(char *st, int n){ char * ret_val; 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;}
【传递结构的地址】
#include<stdio.h>#include<string.h>#define NLEN 30struct namect { char fname[NLEN]; char lname[NLEN]; int letters;};void getinfo(struct namect *);void makeinfo(struct namect *);void showinfo(const struct namect *);char *s_gets(char * st, int n);int main(){ struct namect person; getinfo(&person); makeinfo(&person); showinfo(&person); getchar(); return 0;}void getinfo(struct namect * pst){ printf("please enter your first name .\n"); s_gets(pst->fname,NLEN); printf("please enter your last name.\n"); s_gets(pst->lname, NLEN);}void makeinfo(struct namect *pst){ pst->letters = strlen(pst->fname) + strlen(pst->lname);}void showinfo(const struct namect *pst){ printf("%s %s,your name contains %d letters .\n",pst->fname,pst->lname,pst->letters);}char *s_gets(char *st, int n){ char * ret_val; 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;}
阅读全文
0 0
- 14.5 结构和其他数据形式:传递结构
- 结构和其他数据形式
- 14.5 结构和其他数据形式:指针和结构
- C -- 结构和其他数据形式
- 第十四章 结构和其他数据形式
- C语言结构和其他数据形式
- C 结构和其他数据形式
- 14.1 结构和其他数据形式:结构体
- 14.2 结构和其他数据形式:嵌套结构
- 14.6 结构和其他数据形式:结构、指针、malloc()
- C学习笔记(九)结构和其他数据形式
- C的结构体和其他数据形式
- C语言再学习 -- 结构和其他数据形式
- C primer plus第14章(结构和其他数据形式)
- C primer plus第14章(结构和其他数据形式)(练习)
- c primer plus第14章总结:结构和其他数据形式
- 14 章 结构和其它数据形式
- C结构与其他数据形式学习心得
- 11.5 字符串:选择排序
- 14.1 结构和其他数据形式:结构体
- 14.2 结构和其他数据形式:嵌套结构
- 14.5 结构和其他数据形式:指针和结构
- 微信小程序(5)-新闻页面制作(1)
- 14.5 结构和其他数据形式:传递结构
- Objective-C NSValue详解
- Android6.0运行时权限
- 14.6 结构和其他数据形式:结构、指针、malloc()
- Apk打包与多渠道打包
- 自己写的一个打log的工具类,没啥技术含量,可以直接粘走用
- 了解Gtest中的事件机制
- 14.18.4 嵌套结构数组
- 16.3.1 用宏参数创建字符串