如何将学生信息中的地址优化存储

小明同学在完成 C 语言设计《学生信息管理系统》时发现,计算机专业大约1000名学生,学生的家庭住址是一个很长的字符串,存放到文件或读入内存都占用大量的空间,他仔细观察这些数据发现很多地址有重复的值,比如青岛市的学生,前面都有"山东省""青岛市",他想如果把这些字符串处理一下应该可以节约很多的空间,请你帮助他完成这个任务。
要求完成学生信息系统的基本功能:增删查改。对地址值的存储和处理进行优化,并计算优化可以节约多少存储空间。

思路就是对重复的进行编码,比如北京市编码100 编码自己设计的简单点,存储的时候存储编码