C 库函数 - setlocale()

本文详细介绍了C库函数setlocale()的功能和使用方法,包括如何设置或读取地域化信息,以及如何通过不同的参数控制字符串比较、字符分类、货币格式等。同时,提供了示例代码展示如何在实际编程中应用此函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C 库函数 char *setlocale(int category, const char *locale) 设置或读取地域化信息。

参数:

  1. category -- 这是一个已命名的常量,指定了受区域设置影响的函数类别。
    1. LC_ALL 包括下面的所有选项。
    2. LC_COLLATE 字符串比较。C库函数int strcoll(const char *str1, const char *str2) 比较字符串str1和str2。其结果是依赖于位置LC_COLLATE设置。  
    3. LC_CTYPE 字符分类和转换。例如 strtoupper()。
    4. LC_MONETARY 货币格式,针对 localeconv()。
    5. LC_NUMERIC 小数点分隔符,针对 localeconv()。
    6. LC_TIME 日期和时间格式,针对 strftime()。
    7. LC_MESSAGES 系统响应。

2.locale -- 如果 locale 是 NULL 或空字符串 "",则区域名称将根据环境变量值来设置,其名称与上述的类别名称相同。

返回值:

如果成功调用 setlocale(),则返回一个对应于区域设置的不透明的字符串。如果请求无效,则返回值是 NULL。

例子如下:

#include <QCoreApplication>
#include <locale.h>
#include <stdio.h>
#include <time.h>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    time_t currtime;
    struct tm *timer;
    char buffer[80];
    time( &currtime );
    timer = localtime( &currtime );
    printf("Locale is: %s\n", setlocale(LC_ALL, "en_GB"));
    strftime(buffer,80,"%c", timer );
    printf("Date is: %s\n", buffer); 
    printf("Locale is: %s\n", setlocale(LC_ALL, "de_DE"));
    strftime(buffer,80,"%c", timer );
    printf("Date is: %s\n", buffer);
    return a.exec();
}

结果如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木士易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值