用结构体指针做参数
- #include <stdio.h>
- #include <string.h> // strlen 函数言行头文件、
- #define LOOP 20
- struct name {
- char name_1[LOOP];
- char name_2[LOOP];
- int sttal; //存储两个字符长度
- };
- int space_string ( char *str );
- void string_long ( struct name * strin );
- void printf_name ( struct name * print );
- void get_string ( struct name * get );
- int main (void )
- {
- struct name get;
- get_string ( &get );
- string_long ( &get );
- printf_name ( &get );
- gets ("黑狼制作");
- return 0;
- }
- /* 字符串初始函数*/
- void get_string ( struct name *get )
- {
- puts ("输入你的第一个名字");
- gets ( get->name_1);
- puts ("输入你的第二个名字");
- gets ( get->name_2);
- }
- /*名字长度计算函数*/
- void string_long ( struct name *strin )
- {
- strin->sttal = space_string (strin->name_1)
- + strlen (strin ->name_2);
- }
- /*打印*/
- void printf_name (struct name *print )
- {
- printf ("%s , %s 。your name contains %d lattes \n",
- print->name_1 , print->name_2, print->sttal);
- }
- /*判断字符是不是空格函数*/
- int space_string ( char * str )
- {
- int i=0;
- while( *str++ != ' ' && *str != '\0')
- i++;
- return i ;
- }
用结构体名作函数参数
- #include <stdio.h>
- #include <string.h>
- #define LONG 20
- struct name {
- char name_1[LONG];
- char name_2[LONG];
- int tatol;
- };
- struct name get_string (void);
- struct name string_long (struct name string_count );
- void printf_string (struct name stamp );
- int main (void)
- {
- struct name name_count;
- name_count = get_string ();
- name_count = string_long(name_count);
- printf_string (name_count);
- printf ("程序结束\n");
- return 0;
- }
- /*字符串初始化*/
- struct name get_string(void)
- {
- struct name structe;
- printf ("输入你的第一个人的名字\n");
- gets ( structe.name_1);
- printf ("输入你的第二个人的名字\n");
- gets ( structe.name_2 );
- return structe;
- }
- /*字符串长度计算*/
- struct name string_long ( struct name string_count )
- {
- string_count.tatol = strlen ( string_count.name_1 )
- + strlen ( string_count.name_2);
- return string_count;
- }
- /*字符串的输出函数*/
- void printf_string ( struct name stamp )
- {
- printf ("%s, %s 两个字符串的长度是%d \n",
- stamp.name_1 , stamp.name_2 , stamp.tatol);
- }
当用结构体名做函数参数的时候。调用函数时会根据形式参数创建一个自动的结构体变量。相当于创建了一个形式常参数的副本。