我想知道什么会更好:枚举声明或字符串数组:
enum MonthName{January, February, March, April, May, June, ...)
Run Code Online (Sandbox Code Playgroud)
要么
string MonthName[12] = {"January", "February", "March", "April", "May", "June", ...)
Run Code Online (Sandbox Code Playgroud)
因为对我而言似乎并不重要.
此变量只能由一个函数访问,以根据输入的数字显示月份.
如果你想显示月份名称,enum那么你根本不会有任何好处.枚举类型定义中的标识符仅对编译器可见; 你无法在运行时打印它们.
你需要字符串数组(或者可能是一个const char*s 数组).
使用(在C标准库的标题中)strftime()声明的函数,也可以通过标准库获得月份的名称.获取给定月份数的月份名称并不简单(您必须先构建一个对象).它确实具有为当前区域设置使用月份名称而不是硬连线到英语的优势.<ctime><time.h>strftime()struct tm
不要忘记数组索引从0开始; 12月是指数11,而不是12.