C语言函数大全-- w 开头的函数(3)

news2024/12/27 7:40:04

C语言函数大全

本篇介绍C语言函数大全-- w 开头的函数

1. wcsdup

1.1 函数说明

函数声明函数功能
wchar_t *wcsdup(const wchar_t *str);用于复制宽字符字符串

参数:

  • str : 待复制的宽字符串

返回值:

  • 如果成功复制,则返回指向该内存块的指针;
  • 如果内存分配失败,函数将返回 NULL

1.2 演示示例

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>

int main(void)
{
    // 宽字符字符串 "Hello, world!"
    const wchar_t *ws = L"Hello, world!";

    // 复制宽字符字符串
    wchar_t *ws_copy = wcsdup(ws);

    if (ws_copy == NULL)
    {
        fprintf(stderr, "Error: Failed to allocate memory.\n");
        return 1;
    }

    // 输出原始和副本字符串
    wprintf(L"Original string: %ls\n", ws);
    wprintf(L"Copy: %ls\n", ws_copy);
	// 释放由 wcsdup() 函数分配的内存空间
    free(ws_copy);

    return 0;
}

1.3 运行结果

在这里插入图片描述

2. wcsicmp

2.1 函数说明

函数声明函数功能
int wcsicmp(const wchar_t *s1, const wchar_t *s2);用于比较两个宽字符字符串的大小写不敏感的差异

参数:

  • s1 : 待比较的宽字符串1
  • s2 : 待比较的宽字符串2

返回值:

  • 如果 s1 指向的字符串按字典顺序小于 s2 指向的字符串(忽略大小写),则函数返回一个负整数;
  • 如果 s1 等于 s2,则函数返回 0
  • 如果 s1 指向的字符串按字典顺序大于 s2 指向的字符串(忽略大小写),则函数返回一个正整数。

2.2 演示示例

#include <stdio.h>
#include <wchar.h>

int main(void)
{
    // 宽字符字符串 "Hello, huazie!"
    const wchar_t *ws1 = L"Hello, huazie!";

    // 宽字符字符串 "hello, HUAZIE!"
    const wchar_t *ws2 = L"hello, HUAZIE!";

    int cmp_result = wcsicmp(ws1, ws2);

    // 输出比较结果
    if (cmp_result < 0)
    {
        wprintf(L"%ls is less than %ls.\n", ws1, ws2);
    }
    else if (cmp_result == 0)
    {
        wprintf(L"%ls is equal to %ls.\n", ws1, ws2);
    }
    else
    {
        wprintf(L"%ls is greater than %ls.\n", ws1, ws2);
    }

    return 0;
}

2.3 运行结果

在这里插入图片描述

3. wcsicoll

3.1 函数说明

函数声明函数功能
int wcsicoll(const wchar_t *s1, const wchar_t *s2);用于比较两个宽字符字符串的大小写不敏感的差异, 并考虑当前本地环境的语言和排序规则

参数:

  • s1 : 待比较的宽字符串1
  • s2 : 待比较的宽字符串2

返回值:

  • 如果 s1 指向的字符串按字典顺序小于 s2 指向的字符串(忽略大小写),则函数返回一个负整数;
  • 如果 s1 等于 s2,则函数返回 0
  • 如果 s1 指向的字符串按字典顺序大于 s2 指向的字符串(忽略大小写),则函数返回一个正整数。

3.2 演示示例

#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int main(void)
{
    // 设置本地环境
    setlocale(LC_ALL, "");

    // 宽字符字符串 "Hello, world!"
    const wchar_t *ws1 = L"Hello, huazie!";

    // 宽字符字符串 "hello, WORLD!"
    const wchar_t *ws2 = L"hello, HUAZIE!";

    int cmp_result = wcsicoll(ws1, ws2);

    // 输出比较结果
    if (cmp_result < 0)
    {
        wprintf(L"%ls is less than %ls.\n", ws1, ws2);
    }
    else if (cmp_result == 0)
    {
        wprintf(L"%ls is equal to %ls.\n", ws1, ws2);
    }
    else
    {
        wprintf(L"%ls is greater than %ls.\n", ws1, ws2);
    }

    return 0;
}

注意: 在使用 wcsicoll() 函数前,需要先调用 setlocale() 函数设置本地环境。

3.3 运行结果

在这里插入图片描述

4. wcslwr

4.1 函数说明

函数声明函数功能
wchar_t *wcslwr(wchar_t *str);用于将宽字符字符串转换为小写字母形式

参数:

  • str : 待转换的宽字符串

4.2 演示示例

#include <stdio.h>
#include <wchar.h>

int main(void)
{
    // 宽字符字符串 "Hello, HUAZIE!"
    wchar_t ws[] = L"Hello, HUAZIE!";

    // 将字符串转换为小写字母形式
    wcslwr(ws);

    // 输出转换后的字符串
    wprintf(L"%ls\n", ws);

    return 0;
}

4.3 运行结果

在这里插入图片描述

5. wcspbrk

5.1 函数说明

函数声明函数功能
wchar_t *wcspbrk(const wchar_t *str, const wchar_t *charset);用于在宽字符字符串中查找指定字符集中任意一个字符第一次出现的位置

参数:

  • str : 要搜索的宽字符字符串
  • charset : 要搜索的宽字符集合

wcspbrk() 函数会将 str 指向的宽字符字符串中的每个字符与 charset 指向的宽字符集合中的字符进行比较,直到找到其中任意一个相同的字符为止。
返回值:

  • 如果找到了这样的字符,则函数返回指向该字符的指针;
  • 否则,函数返回 NULL

5.2 演示示例

#include <stdio.h>
#include <wchar.h>

int main(void)
{
    // 宽字符字符串 "Hello, huazie!"
    const wchar_t *ws = L"Hello, huazie!";

    // 查找第一个出现在 "abcd" 中的字符
    wchar_t *result = wcspbrk(ws, L"abcd");

    if (result == NULL)
    {
        wprintf(L"No matching character found.\n");
    }
    else
    {
        wprintf(L"First matching character: %lc\n", *result);
    }

    return 0;
}

5.3 运行结果

在这里插入图片描述

6. wcsnicmp

6.1 函数说明

函数声明函数功能
int wcsnicmp(const wchar_t *s1, const wchar_t *s2, size_t n);用于比较两个宽字符字符串的前若干个字符的大小写不敏感的差异

参数:

  • s1 : 待比较的宽字符串1
  • s2 : 待比较的宽字符串2
  • n : 要比较的字符数目

返回值:

  • 如果 s1 指向的字符串按字典顺序小于 s2 指向的字符串(忽略大小写),则函数返回一个负整数;
  • 如果 s1 等于 s2,则函数返回 0
  • 如果 s1 指向的字符串按字典顺序大于 s2 指向的字符串(忽略大小写),则函数返回一个正整数。

6.2 演示示例

#include <stdio.h>
#include <wchar.h>

int main(void)
{
    // 宽字符字符串 "Hello, huazie!"
    const wchar_t *ws1 = L"Hello, huazie!";

    // 宽字符字符串 "HELLO, HUAZIE!"
    const wchar_t *ws2 = L"HELLO, HUAZIE!";

    int cmp_result = wcsnicmp(ws1, ws2, 5);

    // 输出比较结果
    if (cmp_result < 0)
    {
        wprintf(L"%ls is less than %ls.\n", ws1, ws2);
    }
    else if (cmp_result == 0)
    {
        wprintf(L"%ls is equal to %ls.\n", ws1, ws2);
    }
    else
    {
        wprintf(L"%ls is greater than %ls.\n", ws1, ws2);
    }

    return 0;
}

6.3 运行结果

在这里插入图片描述

7. wcsnset

7.1 函数说明

函数声明函数功能
wchar_t *wcsnset(wchar_t *str, wchar_t ch, size_t n);用于将宽字符字符串中的前若干个字符设置为指定字符

参数:

  • s1 : 要修改的宽字符字符串
  • s2 : 要设置的宽字符
  • n : 要设置的宽字符数目

7.2 演示示例

#include <stdio.h>
#include <wchar.h>

int main(void)
{
    // 宽字符字符串 "Hello, huazie!"
    wchar_t ws[] = L"Hello, huazie!";

    // 将前五个字符设置为 '*'
    wcsnset(ws, L'*', 5);

    // 输出修改后的字符串
    wprintf(L"%ls\n", ws);

    return 0;
}

7.3 运行结果

在这里插入图片描述

8. wcsrev

8.1 函数说明

函数声明函数功能
wchar_t *wcsrev(wchar_t *str);用于将宽字符字符串反转

参数:

  • s1 : 要反转的宽字符字符串

8.2 演示示例

#include <stdio.h>
#include <wchar.h>

int main(void)
{
    // 宽字符字符串 "Hello, huazie!"
    wchar_t ws[] = L"Hello, huazie!";

    // 反转字符串
    wcsrev(ws);

    // 输出反转后的字符串
    wprintf(L"%ls\n", ws);

    return 0;
}

8.3 运行结果

在这里插入图片描述

9. wcsset

9.1 函数说明

函数声明函数功能
wchar_t *wcsset(wchar_t *str, wchar_t ch);用于将宽字符字符串中的所有字符设置为指定字符

参数:

  • str : 要修改的宽字符字符串
  • ch : 要设置的宽字符

9.2 演示示例

#include <stdio.h>
#include <wchar.h>

int main(void)
{
    // 宽字符字符串 "Hello, huazie!"
    wchar_t ws[] = L"Hello, huazie!";

    // 输出修改前的字符串
    wprintf(L"Before: %ls\n", ws);

    // 将字符串中的每个字符都设置为 '#'
    wcsset(ws, L'#');

    // 输出修改后的字符串
    wprintf(L"After : %ls\n", ws);

    return 0;
}

注意: wcsset() 函数会修改原始字符串,因此需要在操作前确保原始字符串可以被修改。

9.3 运行结果

在这里插入图片描述

10. wcstoll

10.1 函数说明

函数声明函数功能
long int wcstoll(const wchar_t* str, wchar_t** endptr, int base);用于将宽字符串转换为长整形

参数:

  • str : 要转换成长整型的宽字符串
  • endptr : 一个指向指针的指针,可用于检测是否发生了转换错误,并且返回第一个无法被识别的宽字符位置。当该值为 nullptr 时,不会返回无法被识别的宽字符位置
  • base : 进制数,默认为 10

10.2 演示示例

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>

int main() 
{
    const wchar_t* str = L"123456789";
    //const wchar_t* str = L"12345a6789";
    //const wchar_t* str = L"a123456789";
    wchar_t* endptr;
    long int num;

    num = wcstoll(str, &endptr, 10);

    wprintf(L"The number is %ld\n", num);

    return 0;
}

10.3 运行结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

11. wcstoull

11.1 函数说明

函数声明函数功能
unsigned long long int wcstoull(const wchar_t* str, wchar_t** endptr, int base);用于将宽字符串转换为无符号长整型

参数:

  • str : 要转换成无符号长整型的宽字符串
  • endptr : 一个指向指针的指针,可用于检测是否发生了转换错误,并且返回第一个无法被识别的宽字符位置。当该值为 nullptr 时,不会返回无法被识别的宽字符位置
  • base : 进制数,默认为 10

11.2 演示示例

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>

int main() 
{
    const wchar_t* str = L"123456789";
    //const wchar_t* str = L"12345a6789";
    //const wchar_t* str = L"a123456789";
    wchar_t* endptr;
    unsigned long long int num;

    num = wcstoull(str, &endptr, 10);

    wprintf(L"The number is %llu\n", num);

    return 0;
}

wcstoull() 函数的用法和 wcstoll() 函数类似,不再赘述了。

11.3 运行结果

在这里插入图片描述

12. wcsupr

12.1 函数说明

函数声明函数功能
wchar_t* wcsupr(wchar_t* str);用于将宽字符串转换为大写

参数:

  • str : 要转换为大写的宽字符串

12.2 演示示例

#include <stdio.h>
#include <wchar.h>

int main(void)
{
    // 宽字符字符串 "Hello, huazie!"
    wchar_t ws[] = L"Hello, huazie!";

    // 将宽字符串转换为大写字母形式
    wcsupr(ws);

    // 输出转换后的字符串
    wprintf(L"%ls\n", ws);

    return 0;
}

12.3 运行结果

在这里插入图片描述

13. wmempcpy

13.1 函数说明

函数声明函数功能
wchar_t* wmempcpy(wchar_t* dest, const wchar_t* src, size_t n);用于将将源宽字符串的前 n 个字节的内容拷贝到目标字符串中

参数:

  • dest : 目标宽字符串
  • src : 源宽字符串
  • n : 要拷贝的字节数

13.2 演示示例

#include <stdio.h>
#include <wchar.h>
#include <string.h>

int main() 
{
    const wchar_t* src = L"Hello, Huazie!";
    wchar_t dest[20];

    wprintf(L"Original string: %ls\n", src);

    // 将源字符串内容拷贝到目标字符串中
    wchar_t* ptr = wmempcpy(dest, src, wcslen(src) * sizeof(wchar_t));
    *ptr = L'\0';

    wprintf(L"Copied string: %ls\n", dest);

    return 0;
}

13.3 运行结果

在这里插入图片描述

14. wmemmove

14.1 函数说明

函数声明函数功能
wchar_t* wmemmove(wchar_t* dest, const wchar_t* src, size_t n);将源宽字符串中指定数量的字节复制到目标宽字符串中,即使目标内存和源内存重叠

参数:

  • dest : 目标宽字符串
  • src : 源宽字符串
  • n : 要移动的字节数

14.2 演示示例

#include <stdio.h>
#include <wchar.h>
#include <string.h>

int main() 
{
    wchar_t str[30] = L"Hello, Huazie!";

    wprintf(L"Original string: %ls\n", str);

    // 将字符串中前5个字符移动到后面
    wmemmove(str + 6, str, 5 * sizeof(wchar_t));

    wprintf(L"Moved string: %ls\n", str);

    return 0;
}

14.3 运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/526623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跨域解决方案

同源策略 同源策略是一种约定&#xff0c;它是浏览器最核心也是最基本的安全功能&#xff0c;如果缺少了同源策略&#xff0c;浏览器很容易受到XSS、CSRF等攻击。 所谓的同源是指【协议域名端口】三者相同&#xff0c;即便两个不同的域名&#xff0c;指向同一个IP地址&#xf…

手把手教你下载darknet_ros

前两天下载darknet_ros&#xff0c;好怪啊&#xff0c;是我太菜了&#xff0c;根本看不懂这都啥啊&#xff0c;所以记录一下 首先附上链接 这里是github上的代码&#xff1a;https://github.com/leggedrobotics/darknet_ros 这里是gitcode上的代码&#xff1a;https://gitcode…

软件技术体系汇总-Spring篇

Spring源码学习总结 版本说明 系列文章是本人在学习 Spring 源码的过程中总结 Spring 版本&#xff1a;5.2.8.RELEASE 调试工具&#xff1a;IDEA2020.3 作者&#xff1a;虎哥 常见面试题 1. 什么是 Spring Framework &#xff1f; 官方文档&#xff1a; Spring makes it eas…

U-Mail邮件中继完美解决邮件超大附件发送难题

随着企业数字化转型的逐步深入&#xff0c;电子邮件成为了企业内部或与外部业务沟通交流的重要方式之一。但是我们在发送电子邮件的时候&#xff0c;如果邮件中包含工程设计图纸&#xff0c;视频文件、产品设计方案等超大附件&#xff0c;发送的邮件会被对方邮件服务器拒收&…

[架构之路-199] - 可靠性需求与可靠性分析:鱼骨图、故障树分析法FTA、失效模式与影响DFMEA,找到影响故障的主要因素

目录 引言&#xff1a; 第1章 故障树分析法与鱼骨图的比较 1.1 相同点 1.2 区别点 第2章 鱼骨图 第3章 故障树 3.1 示意图 3.2 故障树解读 3.3 故障树常见符号 第4章 产品失效(Failure)模式分析DFMEA 引言&#xff1a; 目标系统/产品的可靠性和性能在客户需求阶段就…

从浏览器输入域名开始分析 DNS 解析过程

摘要&#xff1a;DNS&#xff08;Domain Name System&#xff09;是域名系统的英文缩写&#xff0c;是一种组织成域层次结构的计算机和网络服务命名系统&#xff0c;用于 TCP/IP 网络。 本文分享自华为云社区《DNS 那些事 —— 从浏览器输入域名开始分析 DNS 解析过程》&#x…

基于SSM的大学生就业信息管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

常见指令以及权限理解(Linux)

常见指令以及权限理解 命令格式&#xff1a; command [-options] parameter1 parameter1 命令 选项 参数1 参数2 1.command为命令名称&#xff0c;例如变化目录的cd等 2.中括号[ ]实际在命令中是不存在的&#xff0c;这个中括号代表可选&#xff0c;通常选项前面会添加一个符号…

【数据科学赛】HackAPrompt 挑战语言模型!

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 更多比赛信息见 CompHub主页[1] 以下信息由AI辅助创作&#xff0c;仅供参考&#xff0c;请以官网为准&#xff08;文末…

激活函数Relu对精度和损失的影响研究

1 问题 在学习深度学习的过程中&#xff0c;欲探究激活函数Relu对精度和损失的影响。 2 方法 测试设置激活函数时和没有设置激活函数时网络的性能。 控制其余变量&#xff1a; Beach_size128optimizer torch.optim.SGD网络为三层全连接网络&#xff08;784->512->10&…

systemctl针对service类型的配置文件

文章目录 systemctl针对service类型的配置文件systemctl配置文件相关目录简介systemctl配置文件的设置项目简介两个vsftpd运行的实例多重的重复设置方式&#xff1a;以getty为例将tty数量由6个降低为4个暂时新增vsftpd到1212端口 自己做个服务 systemctl针对service类型的配置文…

事件循环Event Loop

什么是事件循环&#xff08;event loop&#xff09; 主线程不断的从消息队列中获取消息&#xff0c;执行消息&#xff0c;这个过程被称为事件循环&#xff0c;在javaScript中就是采用事件循环来解决单线程带来的问题 线程和进程 进程&#xff1a;计算机已经运行的程序&#…

睿智的目标检测66——Pytorch搭建YoloV8目标检测平台

睿智的目标检测66——Pytorch搭建YoloV8目标检测平台 学习前言源码下载YoloV8改进的部分&#xff08;不完全&#xff09;YoloV8实现思路一、整体结构解析二、网络结构解析1、主干网络Backbone介绍2、构建FPN特征金字塔进行加强特征提取3、利用Yolo Head获得预测结果 三、预测结…

GOOGLE|只有大模型才能理解你举的例子(In-context learning)是什么

一、概述 title&#xff1a;LARGER LANGUAGE MODELS DO IN-CONTEXT LEARNING DIFFERENTLY 论文地址&#xff1a;https://arxiv.org/abs/2303.03846 参考&#xff1a;https://www.xiaohongshu.com/user/profile/5f01057f0000000001003c91/640aa237000000001303d871 1.1 Moti…

Java高阶数据结构 图补充-拓扑排序

拓扑排序 文章目录 Java高阶数据结构 & 图补充-拓扑排序1. 什么是拓扑排序2. 拓扑排序算法思想-卡恩算法3. 拓扑排序代码实现3.1 遍历链表计算入度3.2 挑选一个入度为0的顶点3.3 输出顶点3.4 判断循环结束是否为全-13.4 *kahn*方法3.5 测试 Java高阶数据结构 & 图补充…

python内置函数,推导式

abs&#xff1a;取绝对值 data abs&#xff08;-10&#xff09; pow&#xff1a;次方 data pow&#xff08;2&#xff0c;5&#xff09; sum&#xff1a;求和 num_list p[1,2,10,20] res sum(num_list) divmod取商和余数&#xff1a; v1&#xff0c;v2 divmod&…

第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag

题目自取&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1HrMqh-lX-mkfueVeLzoEJg 提取码&#xff1a;oyel 介绍下这可恶的沙箱机制 这是一道非常让人蛋疼的题目&#xff0c;之前我只听说过沙箱&#xff0c;但是并没有自己实际接触过沙箱这个保护机制&#xff0c;大…

基于PKI的物联网安全服务体系建设

文章目录 1. PKI 概况1.1 PKI 简介1.2 CA 介绍1.2.1 CA证书包含主要内容1.2.1 CA 的工作原理1.2.2 主流的CA机构 1.4 PKI 应用场景 2. PKI 在物联网领域中的应用2.1 物联网PKI架构包含组件2.2 物联网PKI证书链 3. 创建自签CA证书3.1 自签名根证书创建3.2 创建云平台证书3.3 创建…

甘肃非煤矿山电子封条 智慧矿山 opencv

甘肃非煤矿山电子封条 智慧煤矿接入国家矿山安全平台是通过pythonopencv网络模型&#xff0c;甘肃非煤矿山电子封条pythonopencv网络模型对关键位置&#xff08;回风井口、运人井口、车辆出入口&#xff09;对现场人员行为、数量、穿戴着装及设备状态各数据进行实时监控分析。p…

【连续介质力学】特征值和特征向量问题

特征值和特征向量问题 二阶张量和一个向量&#xff08;单位向量 n ^ ′ \hat n n^′&#xff09;的点积会得到一个向量&#xff0c;也就是说&#xff0c;将一个二阶张量投影到某个方向所得到的向量的方向实际上与 n ^ ′ \hat n n^′ 的方向不一样&#xff1a; 特征值和特征向…