项目:定义联系人结构体
本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 50 课,共 63 课。
挑战
简单你将构建一个简单的联系人录入工具,了解结构体如何在实际应用中组织相关数据。
编写一个 C 程序,定义一个 Contact 结构体来存储联系人信息。程序需要:
- 定义一个名为
Contact的struct,包含以下成员:- 一个大小为 50 的字符数组
name,用于存储联系人的姓名 - 一个大小为 20 的字符数组
phone,用于存储联系人的电话号码 - 一个大小为 40 的字符数组
email,用于存储联系人的电子邮件地址 - 一个整数
age,用于存储联系人的年龄
- 一个大小为 50 的字符数组
- 在 main 函数中:
- 创建一个名为
person的Contact变量 - 读取以下输入值,并使用点运算符将它们赋给结构体成员:
- 读取姓名字符串,并将其赋给
person.name - 读取电话号码字符串,并将其赋给
person.phone - 读取电子邮件字符串,并将其赋给
person.email - 读取年龄整数,并将其赋给
person.age
- 读取姓名字符串,并将其赋给
- 读取所有值后,执行以下验证:
- 如果年龄小于 0 或大于 120,打印
Invalid age并退出程序 - 如果电话号码长度小于 10 个字符,打印
Invalid phone number并退出程序
- 如果年龄小于 0 或大于 120,打印
- 如果所有验证都通过,按以下确切格式打印联系人信息:
Contact Information:Name: [name]Phone: [phone]Email: [email]Age: [age]
- 计算并打印其他信息:
- 使用
strlen()打印姓名长度,格式为:Name length: [length] - 确定年龄类别并打印:
- 如果年龄在 0 到 17 之间:
Category: Minor - 如果年龄在 18 到 64 之间:
Category: Adult - 如果年龄为 65 或以上:
Category: Senior
- 如果年龄在 0 到 17 之间:
- 使用
- 创建一个名为
这个挑战将测试你对结构体定义、使用合适的数据类型和大小声明成员、使用点运算符访问结构体成员、输入验证,以及在结构体成员上使用 strlen() 等字符串函数的理解。你将练习创建一个实用的数据结构,它可以作为联系人管理系统的基础。
亲手试试
#include <stdio.h>
#include <string.h>
// TODO: 在这里定义 Contact 结构体
int main() {
// TODO: 创建一个名为 person 的 Contact 变量
// 读取输入值
scanf("%s", /* TODO: 赋值给 person.name */);
scanf("%s", /* TODO: 赋值给 person.phone */);
scanf("%s", /* TODO: 赋值给 person.email */);
scanf("%d", /* TODO: 赋值给 person.age */);
// TODO: 在下方编写验证和输出代码
return 0;
}逻辑与流程中的所有课
自己练习: C 在线编译器