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. "); 36 37 s_gets(pst->fname, NLEN); 38 39 printf("Please enter your last name. "); 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. " 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, ' ')) //查找换行符 63 *find = '