乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。
问题分析
题目给定三组符号集合作为"手", “眼”, “口"的姿势,
要求根据用户输入的序号使用对应序号的"手”, “眼”, “口"以”[左手]([左眼][口][右眼])[右手]"的形式输出表情。
输出的部分很简单, 只要使用序号作为索引取到符号输出即可,
所以本题的重点不是输出, 而是如何从输入生成用于取数的符号集合.
对于一些封装层次比较高的语言, 完全可以使用正则之类的方法提取出符号生成集合.
也可以使用字符串分割的方式生成集合.
对于C语言, 需要自行实现符号提取逻辑.
如何提取符号
题设规定"每个符号括在一对方括号 []内", 所以"[“标记着符号开始, 而”]“标记着符号结束.
所以在遇到”[“时, 设置符号索引为下一个符号的序号, 字符存储索引为0, 然后直到遇到”]“之前都读取字符.
在遇到”]“时, 意味着符号结束, 在当前符号字符串的末尾加上结束符”\0". 这样之后再读入字符也是没有影