gpt4 book ai didi

c++ - 从内置 C 库中获取月份名称的各种方法

转载 作者:搜寻专家 更新时间:2023-10-31 02:00:09 25 4
gpt4 key购买 nike

从内置的 C/C++ 中获取与整数值对应的月份名称的各种方法是什么 [1 月为 0,2 月为 1,...,11 月为 12 月]库,我对 strftime 很熟悉。还有其他方法可以做到这一点吗?

最佳答案

#include <langinfo.h>
#include <locale.h>
#include <stdio.h>
int main() {
const nl_item nl_abmons[12] = {ABMON_1, ABMON_2, ABMON_3, ABMON_4,
ABMON_5, ABMON_6, ABMON_7, ABMON_8,
ABMON_9, ABMON_10, ABMON_11, ABMON_12};
const nl_item nl_months[12] = {MON_1, MON_2, MON_3, MON_4, MON_5, MON_6,
MON_7, MON_8, MON_9, MON_10, MON_11, MON_12};
int i;
setlocale(LC_ALL, "");
for (i = 0; i < 12; i++) {
printf("%d\t%s\t%s\n",
i+1, nl_langinfo(nl_abmons[i]), nl_langinfo(nl_months[i]));
}
return 0;
}
$ cc months.c$ LANG=ja_JP.utf8 ./a.out1        1月    1月2        2月    2月3        3月    3月4        4月    4月5        5月    5月6        6月    6月7        7月    7月8        8月    8月9        9月    9月10      10月    10月11      11月    11月12      12月    12月$ LANG=ru_RU.utf8 ./a.out1       Янв     Январь2       Фев     Февраль3       Мар     Март4       Апр     Апрель5       Май     Май6       Июн     Июнь7       Июл     Июль8       Авг     Август9       Сен     Сентябрь10      Окт     Октябрь11      Ноя     Ноябрь12      Дек     Декабрь$ LANG=de_DE.utf8 ./a.out1       Jan     Januar2       Feb     Februar3       Mär     März4       Apr     April5       Mai     Mai6       Jun     Juni7       Jul     Juli8       Aug     August9       Sep     September10      Okt     Oktober11      Nov     November12      Dez     Dezember

在我所知道的所有实现中确实如此 MON_1..MON_12是连续的,所以这可以写成 for (i = 0; i < 12; i++) printf("%d %s\n", i+1, nl_langinfo(MON_1+i));具有相同的实际效果,但我在任何地方的文档中都看不到这一点。

关于c++ - 从内置 C 库中获取月份名称的各种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2350431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com