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

news2024/11/24 10:18:03

C语言函数大全

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

1. wcscat

1.1 函数说明

函数声明函数功能
wchar_t * wcscat(wchar_t *dest, const wchar_t *src);用于将一个宽字符字符串追加到另一个宽字符字符串的末尾

参数:

  • dest : 目标字符串
  • src : 源字符串

1.2 演示示例

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

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

    wcscat(dest, src);

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

    return 0;
}

在上面的示例代码中,

  • 首先,我们定义了一个大小为 30wchar_t 数组 dest,并初始化为 "Hello";
  • 然后,定义了一个指向常量宽字符串的指针 src,指向字符串 ", Huazie!"
  • 接着。调用 wcscat() 函数将 src 字符串中的所有字符追加到 dest 字符串的末尾,形成新的宽字符字符串 "Hello, Huazie!"
  • 最后,使用 wprintf() 函数将新的字符串输出到控制台。

注意: 在使用 wcscat() 函数时,需要确保目标字符串 dest 的空间足够大,以容纳源字符串 src 的所有字符和一个结束符(\0)。如果目标字符串的空间不足,可能会导致数据覆盖和未定义行为。

1.3 运行结果

在这里插入图片描述

2. wcschr

2.1 函数说明

函数声明函数功能
wchar_t *wcschr(const wchar_t *str, wchar_t wc);用于在宽字符串中查找指定字符的位置

参数:

  • str : 要查找的宽字符串
  • wc : 要查找的宽字符

返回值:

  • 如果在 str 字符串中查找到第一个与 wc 相等的宽字符,则返回该字符在字符串中的地址;
  • 否则没有找到匹配字符,则返回空指针。

2.2 演示示例

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

int main() 
{
    const wchar_t *str = L"hello, huazie";
    wchar_t c = L'u';

    wchar_t *p = wcschr(str, c);

    if (p != NULL) 
        printf("Found %lc at position %d.\n", c, p - str);
    else
        printf("%lc not found.\n", c);

    return 0;
}

在上面的示例代码中,

  • 首先,我们定义了一个宽字符串 str,并初始化为 "hello, huazie"
  • 然后,定义了一个宽字符 c,值为 'u'
  • 接着调用 wcschr() 函数在 str 字符串中查找字符 c,并将返回结果保存在指针变量 p 中;
  • 最后,根据返回值判断是否找到了匹配字符,并输出相应的信息。

2.3 运行结果

在这里插入图片描述

3. wcscmp

3.1 函数说明

函数声明函数功能
int wcscmp(const wchar_t *str1, const wchar_t *str2);用于比较两个宽字符串的大小;它将两个字符串逐个字符进行比较,直到遇到不同的字符或者其中一个字符串结束为止

参数:

  • str1: 待比较的宽字符串1
  • str2: 待比较的宽字符串2

返回值:

  • 如果 str1 小于 str2,则返回一个负整数;
  • 如果 str1 等于 str2,则返回 0;
  • 如果 str1 大于 str2,则返回一个正整数。

3.2 演示示例

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

int main() 
{
    const wchar_t *str1 = L"hello";
    const wchar_t *str2 = L"huazie";

    int result = wcscmp(str1, str2);

    if (result < 0) 
        printf("%ls is less than %ls.\n", str1, str2);
    else if (result == 0)
        printf("%ls is equal to %ls.\n", str1, str2);
    else
        printf("%ls is greater than %ls.\n", str1, str2);

    return 0;
}

在上述的示例代码中,

  • 首先,我们定义了两个宽字符串 str1str2,分别初始化为 "hello""huazie"
  • 然后,调用 wcscmp() 函数比较两个字符串的大小,并将返回结果保存在变量 result 中;
  • 接着根据 result 的值,输出相应的比较结果;
  • 最后结束程序。

3.3 运行结果

在这里插入图片描述

4. wcscoll

4.1 函数说明

函数声明函数功能
int wcscoll(const wchar_t *str1, const wchar_t *str2);用于比较两个宽字符串的大小

参数:

  • str1: 待比较的宽字符串1
  • str2: 待比较的宽字符串2

4.2 演示示例

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

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

    const wchar_t *str1 = L"hello";
    const wchar_t *str2 = L"huazie";

    int result = wcscoll(str1, str2);

    if (result < 0)
        printf("%ls is less than %ls.\n", str1, str2);
    else if (result == 0)
        printf("%ls is equal to %ls.\n", str1, str2);
    else
        printf("%ls is greater than %ls.\n", str1, str2);

    return 0;
}

在上述的示例代码中,

  • 首先,我们调用 setlocale() 函数设置本地化环境为当前系统默认设置;
  • 然后,定义了两个宽字符串 str1str2,分别初始化为 “hello” 和 “huazie”;
  • 接着,调用 wcscoll() 函数比较两个字符串的大小,并将返回结果保存在变量 result 中。
  • 最后根据 result 的值,输出相应的比较结果。

注意: 在使用 wcscoll() 函数比较宽字符串大小时,需要确保本地化环境正确设置,以便该函数能够正常工作。如果没有设置本地化环境或者设置错误,可能会导致比较结果不准确。

4.3 运行结果

在这里插入图片描述

5. wcscpy

5.1 函数说明

函数声明函数功能
wchar_t *wcscpy(wchar_t *dest, const wchar_t *src);用于将一个宽字符串复制到另一个字符串中

参数:

  • dest : 目标字符串
  • src : 源字符串

5.2 演示示例

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

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

    wcscpy(dest, src);

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

    return 0;
}

在上述的示例代码中,

  • 首先,我们定义了一个大小为 20wchar_t 数组 dest
  • 然后,定义了一个指向常量宽字符串的指针 src,指向字符串 “Hello, huazie!”;
  • 接着,调用 wcscpy() 函数将 src 字符串中的所有字符复制到 dest 字符串中,形成新的宽字符字符串 dest
  • 最后,使用 wprintf() 函数将新的字符串输出到控制台。

5.3 运行结果

在这里插入图片描述

6. wcsftime

6.1 函数说明

函数声明函数功能
size_t wcsftime(wchar_t *str, size_t maxsize, const wchar_t *format, const struct tm *timeptr);用于将日期和时间格式化为宽字符字符串

参数:

  • str : 输出结果的缓冲区
  • maxsize : 缓冲区的大小
  • format : 格式化字符串
  • timeptr : 包含日期和时间信息的结构体指针

6.2 演示示例

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

int main() 
{
    time_t current_time;
    struct tm *time_info;
    wchar_t buffer[80];

    time(&current_time);
    time_info = localtime(&current_time);

    wcsftime(buffer, 80, L"%c", time_info);
    wprintf(L"The current date and time is: %ls\n", buffer);

    return 0;
}

在上面的示例代码中,

  • 首先,我们定义了一个变量 current_time 来存储当前时间,以及一个指向 struct tm 类型的指针 time_info
  • 然后,调用 time() 函数获取当前时间,并使用 localtime() 函数将时间转换为本地时间,存储在 time_info 指针变量中;
  • 接着,调用 wcsftime() 函数将日期和时间格式化为宽字符字符串,并存储到缓冲区 buffer 中;
  • 最后,使用 wprintf() 函数输出格式化后的字符串。

6.3 运行结果

在这里插入图片描述

7. wcslen

7.1 函数说明

函数声明函数功能
size_t wcslen(const wchar_t *str);用于计算宽字符串的长度

参数:

  • str : 要计算长度的宽字符串

7.2 演示示例

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

int main() 
{
    const wchar_t *str = L"Hello, huazie!";
    size_t len = wcslen(str);

    wprintf(L"The length of '%ls' is %zu.\n", str, len);

    return 0;
}

在上面的示例代码中,

  • 首先,我们定义了一个指向常量宽字符串的指针 str,指向字符串 "Hello, huazie!"
  • 然后,调用 wcslen() 函数计算 str 字符串的长度,并将结果保存在变量 len 中;
  • 最后,使用 wprintf() 函数输出字符串的长度。

7.3 运行结果

在这里插入图片描述

8. wcsncat

8.1 函数说明

函数声明函数功能
wchar_t *wcsncat(wchar_t *dest, const wchar_t *src, size_t n);用于将一个宽字符串的一部分追加到另一个宽字符串末尾

参数:

  • dest : 目标字符串
  • src : 源字符串
  • n : 要追加的字符数

8.2 演示示例

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

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

    wcsncat(dest, src, n);

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

    return 0;
}

在上述的示例代码中,

  • 首先,我们定义了一个大小为 20wchar_t 数组 dest,并初始化为 "Hello, "
  • 然后,定义了一个指向常量宽字符串的指针 src,指向字符串 "huazie!"
  • 接着,调用 wcsncat() 函数将 src 字符串中的前 3 个字符追加到 dest 字符串的末尾,形成新的宽字符字符串 dest
  • 最后,使用 wprintf() 函数将新的字符串输出到控制台。

8.3 运行结果

在这里插入图片描述

9. wcsncmp

9.1 函数说明

函数声明函数功能
int wcsncmp(const wchar_t *str1, const wchar_t *str2, size_t n);用于比较两个宽字符串的前若干个字符是否相同

参数:

  • str1 : 待比较的宽字符串1
  • str2 : 待比较的宽字符串2
  • n : 要比较的字符数

返回值:
将字符串 str1 和字符串 str2 中的前 n 个字符进行比较

  • 如果两个字符串相同,返回值为 0
  • 如果字符串 str1 在前 n 个字符中的第一个不同于字符串 str2 对应字符的字符大于字符串 str2 对应字符的字符,返回值为正数;
  • 如果字符串 str1 在前 n 个字符中的第一个不同于字符串 str2 对应字符的字符小于字符串 str2 对应字符的字符,返回值为负数。

9.2 演示示例

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

int main() 
{
    const wchar_t *str1 = L"hello";
    const wchar_t *str2 = L"huazie";
    size_t n = 3;

    int result = wcsncmp(str1, str2, n);

    if (result < 0)
        printf("%ls is less than %ls in the first %zu characters.\n", str1, str2, n);
    else if (result == 0)
        printf("%ls is equal to %ls in the first %zu characters.\n", str1, str2, n);
    else
        printf("%ls is greater than %ls in the first %zu characters.\n", str1, str2, n);

    return 0;
}

9.3 运行结果

在这里插入图片描述

10. wcsncpy

10.1 函数说明

函数声明函数功能
wchar_t *wcsncpy(wchar_t *dest, const wchar_t *src, size_t n);用于将一个宽字符串的一部分复制到另一个宽字符串中

参数:

  • dest : 目标字符串
  • src : 源字符串
  • n : 要复制的字符数

10.2 演示示例

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

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

    wcsncpy(dest, src, n);
    dest[n] = L'\0';

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

    return 0;
}

在上面的示例代码中,

  • 首先,我们定义了一个大小为 20wchar_t 数组 dest,以及一个指向常量宽字符串的指针 src,指向字符串 "Hello, huazie!"
  • 然后,调用 wcsncpy() 函数将 src 字符串中的前 5 个字符复制到 dest 字符串中,形成新的宽字符字符串 dest
  • 最后,手动添加空字符 \0 以确保字符串结束,并使用 wprintf() 函数将新的字符串输出到控制台。

10.3 运行结果

在这里插入图片描述

11. wcsrtombs

11.1 函数说明

函数声明函数功能
size_t wcsrtombs(char *dest, const wchar_t **src, size_t n, mbstate_t *ps);用于将宽字符串转换为多字节字符串

参数:

  • dest : 输出结果的缓冲区
  • src : 指向源字符串的指针
  • n : 要转换的最大字符数
  • ps : 一个指向转换状态的指针

11.2 演示示例

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

int main() 
{
    setlocale(LC_ALL, "");

    const wchar_t *src = L"Hello, huazie!";
    size_t n = wcslen(src) + 1;

    char *dest = (char *) malloc(n * sizeof(char));

    if (dest == NULL) 
    {
        fprintf(stderr, "Memory allocation failed.\n");
        return EXIT_FAILURE;
    }

    mbstate_t state = {0};

    wcsrtombs(dest, &src, n, &state);

    printf("%s\n", dest);

    free(dest);

    return 0;
}

在上面的示例代码中,

  • 首先,我们调用 setlocale() 函数设置程序的本地化环境,以便可以正确地进行宽字符和多字节字符之间的转换;
  • 然后,定义了一个指向常量宽字符串的指针 src,指向字符串 "Hello, huazie!"
  • 接着,根据源字符串的长度分配了足够大小的缓冲区 dest,并初始化为 0
  • 再然后,调用 wcsrtombs() 函数将宽字符串 src 转换为多字节字符串,并存储到缓冲区 dest 中;
  • 最后,使用 printf() 函数输出多字节字符串,并释放目标缓存区的内存。

注意: 在使用 wcsrtombs() 函数进行宽字符和多字节字符转换时,需要确保程序的本地化环境已经正确设置,否则可能会导致转换失败或者输出结果不正确。此外,在分配缓冲区 dest 的大小时,可以考虑将源字符串的长度加 1,以容纳字符串的结尾空字符(\0)。最后在使用完毕后要记得释放缓冲区的内存。

11.3 运行结果

在这里插入图片描述

12. wcsstr

12.1 函数说明

函数声明函数功能
wchar_t *wcsstr(const wchar_t *haystack, const wchar_t *needle);用于在一个宽字符串中查找另一个宽字符串

参数:

  • haystack : 要查找的宽字符串
  • needle : 要查找的子串

返回值:

  • 如果从 haystack 字符串中查找到第一个匹配 needle 子串的位置,则返回指向匹配位置的指针;
  • 否则未找到匹配的子串,返回空指针(NULL)。

12.2 演示示例

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

int main() 
{
    const wchar_t *haystack = L"Hello, huazie!";
    const wchar_t *needle = L"huazie";

    wchar_t *result = wcsstr(haystack, needle);

    if (result != NULL)
        wprintf(L"The substring '%ls' was found at position %d.\n", needle, result - haystack);
    else
        wprintf(L"The substring '%ls' was not found in '%ls'.\n", needle, haystack);

    return 0;
}

在上述的示例代码中,

  • 首先,我们定义了一个指向常量宽字符串的指针 haystack,指向字符串 "Hello, huazie!"
  • 然后,定义了一个指向常量宽字符串的指针 needle,指向字符串 "huazie"
  • 接着,调用 wcsstr() 函数在 haystack 字符串中查找子串 needle,并将结果指针保存在变量 result 中。
  • 最后,根据 result 的值,输出相应的查找结果。

注意: 在使用 wcsstr() 函数查找子串时,该函数会自动遍历整个字符串,直到找到匹配的子串或者结束字符串。如果要查找的子串在字符串中多次出现,该函数将返回第一次出现的位置,并不会考虑后续的匹配。

12.3 运行结果

在这里插入图片描述

13. wcsspn

13.1 函数说明

函数声明函数功能
size_t wcsspn(const wchar_t *str, const wchar_t *accept);用于查找宽字符串中连续包含某些字符集合中的字符的最长前缀

参数:

  • str : 要查找的宽字符串
  • accept : 一个包含要接受字符集合的宽字符串

13.2 演示示例

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

int main() 
{
    const wchar_t *str = L"123456789a0";
    const wchar_t *accept = L"0123456789";

    size_t length = wcsspn(str, accept);

    wprintf(L"The length of the prefix that contains digits is %zu.\n", length);

    return 0;
}

在上述的示例代码中,

  • 首先,我们定义了一个指向常量宽字符串的指针 str,指向字符串 "123456789a0"
  • 然后,定义了一个指向常量宽字符串的指针 accept,指向字符串 "0123456789",表示数字字符的集合;
  • 接着,调用 wcsspn() 函数查找 str 字符串中连续包含数字字符集合中的字符的最长前缀,并将返回结果保存在变量 length 中。
  • 最后,根据 length 的值,调用 wprintf() 函数 输出 最长前缀的长度。

注意: 在使用 wcsspn() 函数查找宽字符串中的字符集合时,该函数会自动遍历整个字符串,直到找到第一个不在字符集合中的字符或者结束字符串。如果要查找的字符集合为空串,则返回 0

13.3 运行结果

在这里插入图片描述

14. wcstod

14.1 函数说明

函数声明函数功能
double wcstod(const wchar_t *nptr, wchar_t **endptr);用于将宽字符串转换为双精度浮点数

参数:

  • nptr : 要转换的宽字符串
  • endptr : 一个指向指针的指针,用于存储第一个无法解析的字符的位置

返回值:

  • 如果从 nptr 字符串中解析出一个双精度浮点数,则返回该数值;
  • 如果 nptr 字符串不包含有效的浮点数,则返回 0
  • 如果存在无法解析的字符,存储其位置到 endptr 指针中。

14.2 演示示例

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

int main() 
{
    const wchar_t *str = L"3.14159265358979323846";
    //const wchar_t *str = L"3.141592653589793a23846";
    //const wchar_t *str = L"a3.14159265358979323846";
    wchar_t *end;

    double number = wcstod(str, &end);

    if (end == str)
        wprintf(L"No digits were found.\n");
    else if (*end != L'\0')
        wprintf(L"Invalid character at position %ld: '%lc'.\n", end - str, *end);
    else
        wprintf(L"The parsed number is %.20lf.\n", number);

    return 0;
}

在上面的示例代码中,

  • 首先,我们定义了一个指向常量宽字符串的指针 str,指向字符串 "3.14159265358979323846"
  • 然后,调用 wcstod() 函数将字符串转换为双精度浮点数,并将结果保存在变量 number 中。
  • 最后,根据函数的返回结果 numberendptr 指针所指向的值,输出相应的转换结果。

注意: 在使用 wcstod() 函数转换宽字符串为双精度浮点数时,要确保字符串中只包含有效的浮点数表示,否则可能会导致转换错误或者未定义行为。

14.3 运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

29.Mybatis—多表操作与注解开发

目录 一、Mybatis学习。 &#xff08;1&#xff09;MyBatis的多表操作。 &#xff08;1.1&#xff09;一对一查询。 &#xff08;1.2&#xff09;一对多查询。 &#xff08;1.3&#xff09;多对多查询。 &#xff08;1.4&#xff09;三种查询知识小结。 一、Mybatis学习。…

算法修炼之练气篇——练气十二层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

从零开始学习Vue3:掌握前端开发的核心技能——更新中

这里写目录标题 一、了解ts1、ts是js的超集 二、掌握ts基本写法1、数据类型2、对象使用3、类4、多态5、类修饰符6、存储器7、抽象类 一、了解ts 1、ts是js的超集 即你可以在ts中使用原生js语法&#xff1a;JavaScript 更多功能 TypeScript** js是弱类型语言&#xff0c;而t…

ESP32设备驱动-LIS3DSH加速度传感器驱动

LIS3DSH加速度传感器驱动 文章目录 LIS3DSH加速度传感器驱动1、LIS3DH介绍2、硬件准备3、软件准备4、驱动实现1、LIS3DH介绍 LIS3DSH 是一款超低功耗高性能三轴线性加速度计,属于“纳米”系列,具有嵌入式状态机,可通过编程实现自主应用。 LIS3DSH 具有 2g/4g/6g/8g/16g 的动…

八、Consul注册中心

目录 1、到官网下载Consul https://www.consul.io/ 2、解压下载好的压缩包 3、配置系统环境变量 4、WINR启动cmd窗口&#xff0c;输入consul启动命令 5、启动完成后访问Consul页面 http://localhost:8500&#xff08;8500为Consul默认端口号&#xff09; 6、server-mem…

〖Python网络爬虫实战㉔〗- Ajax数据爬取之Ajax 分析案例

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;目前专栏免费订阅&#xff0c;在转为付费专栏前订阅本专栏的&#xff0c;可以免费订阅付…

Git安装及使用

Git简介 Git是什么 Git是目前世界上最先进的分布式版本控制系统(Version Control System)。 Git的功能 Git安装 Git官网&#xff1a;https://git-scm.com/ 打开安装程序后&#xff0c;一直点击下一步&#xff0c;直到以下位置&#xff1a; 这里选择第一项&#xff0c;即…

Spring基础且核心的两大概念——IoC 与 DI

什么是Spring&#xff1f; Spring 全称 Spring Framework&#xff0c;它是一个目前市场上最流行、结构最庞大的开源框架&#xff0c;之所以如此&#xff0c;是因为其有独特且全面的应用场景&#xff0c;这样好的生态才使企业一直对青睐。 注意这句话&#xff1a;Spring 是包含了…

Vector - 常用CAN工具 - CANoe软件安装常见问题

目录 一、确认电脑系统盘是否满足要求&#xff0c;CANoe软件对PC要求如下&#xff1a; 二、确认软件安装包完整 三、确认软件与电脑系统之间的兼容性 四、关闭后台程序 五、安装软件 六、清空临时文件夹 七、尝试在其他电脑上安装 一、确认电脑系统盘是否满足要求&#…

LLVM代码空间优化(一) 编译器自带的优化选项

最近项目组遇到编译安全固件&#xff0c;超出了r52安全核SRAM自带空间问题。急需要找寻方法优化代码体积&#xff08;代码段大小数据段大小stackbss段&#xff09;方法&#xff0c;目前初步分析只有代码段&数据段有优化的可能&#xff0c;bss和stack优化空间并不大。有方法…

Unity Audio -- (5)声音的可用性考量

在某些情况下&#xff0c;用户可能会关闭声音或者让音量降低至很小的水平&#xff0c;用户本身的听力情况&#xff08;用户可能有听力障碍&#xff0c;失聪等情况&#xff09;也有差异。一个好的设计者应该要考虑到项目的可用性&#xff0c;音频也不例外。本节我们来看看如何能…

由于找不到msvcr100.dll,msvcr100.dll丢失怎样修复

在我们打开游戏或者软件的时候&#xff0c;电脑提示由于找不到msvcr100.dll文件&#xff0c;无法执行此代码是什么意思&#xff1f;msvcr100.dll为什么会丢失&#xff0c;又该如何修复呢&#xff1f;相信这些问题困扰着不少小伙伴&#xff0c;昨天是准备玩吃鸡游戏的时候&#…

被面试官故意刁难,太难了...

今年的金三银四&#xff0c;我和大多数的同行一样加入了升职涨薪的潮水&#xff0c;我早在2个月前就开始准备&#xff0c;我觉得自己在技术方面完全没有问题&#xff0c;于是这两个月我每天在公司摸鱼2小时&#xff0c;回家刷2小时&#xff0c;前前后后刷了几千到面试题&#x…

【LeetCode困难】1263. 推箱子

「推箱子」是一款风靡全球的益智小游戏&#xff0c;玩家需要将箱子推到仓库中的目标位置。 游戏地图用大小为 m x n 的网格 grid 表示&#xff0c;其中每个元素可以是墙、地板或者是箱子。 现在你将作为玩家参与游戏&#xff0c;按规则将箱子 ‘B’ 移动到目标位置 ‘T’ &am…

设计模式|代理模式

代理模式介绍 ​代理模式指为其他对象提供一种代理&#xff0c;以控制对这个对象的访问。在某些情况下&#xff0c;一个对象若不能直接引用另一个对象&#xff0c;而代理对象可以在客户端与目标对象之间起到中介的作用。 代理模式使用场景 普通代理 普通代理模式是指在代理模…

C++的string类使用介绍

string类 1.为什么要学习string类&#xff1f;1.1.C语言中的字符串1.2. 日常中 2. 标准库中的string类2.2 string类(对于单字节的字符)的常用接口说明①string常见的构造函数②string类对象的容量操作③string类对象的访问以及遍历操作④string类对象的修改操作⑤string类非成员…

OrCAD怎样把原理图输出为DXF格式

OrCAD怎样把原理图输出为DXF格式 又有段时间没分享文章了&#xff0c;想想主要还是自媒体写点内容确实不容易&#xff0c;要不断坚持下来更不容易&#xff0c;一直以来也就是凭着“乐于分享”的心在不定时更新。 今天分享的主题是&#xff1a;OrCAD怎样把原理图输出为DXF格式…

标准CSO

Cheng R, Jin Y. A competitive swarm optimizer for large scale optimization[J]. IEEE transactions on cybernetics, 2014, 45(2): 191-204. 1.1 背景介绍 CSO&#xff08;competitive swarm optimizer&#xff09;算法是在PSO&#xff08;particle swarm optimization&a…

医日健“数智药房”解锁购药新模式

“现在买药这么方便&#xff0c;半夜拉肚子过来自助付款、自助取药&#xff0c;还能连线医生&#xff0c;很快就买好了药。”上海市宝山区消费者王先生惊喜地说。近日&#xff0c;宝山区一国大药房医日健 “智慧药房”正式上线营业&#xff0c;该药房实现自助式、无接触就医购药…

如何添加团队成员到你的项目

本文介绍在YonBuilder移动开发中&#xff0c;如何把你的团队成员添加到你的应用中&#xff0c;让团队成员也具备应用的相关配置&#xff0c;代码拉取&#xff0c;打包编译等功能权限。 简单来说把「团队成员添加到你的项目」&#xff0c;一共需要三步大流程操作&#xff0c;具…