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

news2025/1/17 0:58:47

C语言函数大全

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

1. wcstok

1.1 函数说明

函数声明函数功能
wchar_t *wcstok(wchar_t *wcs, const wchar_t *delim, wchar_t **ptr);用于将一个长字符串拆分成几个短字符串(标记),并返回第一个标记的地址
wchar_t *wcstok(wchar_t *wcs, const wchar_t *delim);用于将一个长字符串拆分成几个短字符串(标记),并返回第一个标记的地址

在这里插入图片描述

参数:

  • wcs : 被分割的字符串
  • delim : 分割符字符串,包含多个字符
  • ptr : 指向保存上次调用后的指针的指针,首次调用时需赋值为 NULL

1.2 演示示例

windows 下两个参数的示例:

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

int main() {
    wchar_t str[] = L"Hello, huazie! This is wcstok demo.";
    wchar_t* token;

    // 第一次调用
    token = wcstok(str, L" ,.!?");
    while (token != NULL) 
    {
        wprintf(L"%ls\n", token);
        token = wcstok(NULL, L" ,.!?");
    }

    return 0;
}

1.3 运行结果

在这里插入图片描述

2. wcstol

2.1 函数说明

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

参数:

  • str : 要转换的字符串
  • endptr : 可选输出参数,指向第一个不能转换成数字字符的字符的指针
  • base : 数字基数,介于 236 之间;
    base 参数为 0 时,wcstol() 函数会自动检测数字基数:
    • 如果输入字符串以 "0x""0X" 开头,则将基数设置为 16
    • 如果输入字符串以 "0" 开头,则将基数设置为 8
    • 如果不是这些情况,则将基数设置为 10

2.2 演示示例

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

int main() 
{
    //const wchar_t* str = L"123456";
    //const wchar_t* str = L"123a456";
    //const wchar_t* str = L"a123456";
    const wchar_t* str = L"0xFF";
    wchar_t* endptr;
    long int num;

    //num = wcstol(str, &endptr, 10);
    num = wcstol(str, &endptr, 0);
    if (endptr == str)
        printf("Invalid input.\n");
    else
        printf("The number is %ld\n", num);

    return 0;
}

注意: 如果输入字符串无法转换为数字,则 wcstol() 函数返回 0,并将 endptr 指向输入字符串的起始位置。所以,在使用 wcstol() 函数时,建议检查 endptrstr 是否相同,以确定输入是否有效。

2.3 运行结果

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

3. wcstoul

3.1 函数说明

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

参数:

  • str : 要转换的字符串
  • endptr : 可选输出参数,指向第一个不能转换成数字字符的字符的指针
  • base : 数字基数,介于 236 之间;
    base 参数为 0 时,wcstol() 函数会自动检测数字基数:
    • 如果输入字符串以 "0x""0X" 开头,则将基数设置为 16
    • 如果输入字符串以 "0" 开头,则将基数设置为 8
    • 如果不是这些情况,则将基数设置为 10

3.2 演示示例

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

int main() 
{
    const wchar_t* str = L"123a456";
    wchar_t* endptr;
    unsigned long int num;

    num = wcstoul(str, &endptr, 10);
    if (endptr == str)
        printf("Invalid input.\n");
    else
        printf("The number is %lu\n", num);

    return 0;
}

wcstoul() 函数的用法和 wcstol() 函数类似,这里就不一一列举了

3.3 运行结果

在这里插入图片描述

4. wcsxfrm

4.1 函数说明

函数声明函数功能
size_t wcsxfrm(wchar_t* dest, const wchar_t* src, size_t n);将一个 Unicode 字符串转换为一个 “可排序” 的字符串。该新字符串中的字符序列反映了源字符串中的字符顺序和大小写信息,以便进行字典序比较。

参数:

  • dest : 存储转换后字符串的目标缓冲区
  • src: 要转换的源字符串
  • n : 目标缓冲区的最大长度

4.2 演示示例

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

#define ARRAY_SIZE 5

int main() 
{
    const wchar_t* arr[ARRAY_SIZE] = { L"Tom", L"Alice", L"Huazie", L"David", L"Charlie" };
    wchar_t sorted_arr[ARRAY_SIZE][50];
    size_t i;

    for (i = 0; i < ARRAY_SIZE; i++) 
    {
        wcsxfrm(sorted_arr[i], arr[i], sizeof(sorted_arr[i]));
    }

    // 使用 qsort 对字符串数组排序
    qsort(sorted_arr, ARRAY_SIZE, sizeof(sorted_arr[0]), wcscmp);

    // 排序后输出
    wprintf(L"Sorted array:\n");
    for (i = 0; i < ARRAY_SIZE; i++) 
    {
        wprintf(L"%ls\n", sorted_arr[i]);
    }

    return 0;
}

在上面的示例代码中,

  • 首先,我们定义一个包含 5Unicode 字符串的字符串数组 arr,每个字符串代表一个人名;
  • 然后,定义一个大小为 5x50 的二维字符数组 sorted_arr,用于存储排序后的字符串;
  • 接着,使用 wcsxfrm() 函数将每个 Unicode 字符串转换为可排序字符串,并将结果存储在 sorted_arr 数组中;
  • 再然后,使用 qsort() 函数按字典序对 sorted_arr 数组中的字符串进行排序;
  • 再接着,使用 wprintf() 函数输出排序后的字符串;
  • 最后结束程序。

4.3 运行结果

在这里插入图片描述

5. wctype

5.1 函数说明

函数声明函数功能
wctype_t wctype(const char* property);用于确定给定的宽字符类别

参数:

  • property : 一个指向表示宽字符属性名称的字符串字面量的指针

常见的宽字符属性及含义如下:

属性名称含义
"alnum"字母数字字符
"alpha"字母字符
"blank"空格或水平制表符字符
"cntrl"控制字符
"digit"数字字符
"graph"可打印字符(除空格字符外)
"lower"小写字母字符
"print"可打印字符
"punct"标点符号字符
"space"空白字符
"upper"大写字母字符
"xdigit"十六进制数字字符

返回值:

  • 如果指定的属性存在,则返回相应的宽字符类型;
  • 如果指定的属性不存在,则返回零。

5.2 演示示例

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

int main() 
{
    wchar_t ch = L',';
    wctype_t punct_wt;

    // 获取标点符号字符类型
    punct_wt = wctype("punct");

    // 判断指定的宽字符是否为标点符号
    if (iswctype(ch, punct_wt)) {
        wprintf(L"%lc is a punctuation character.\n", ch);
    } else {
        wprintf(L"%lc is not a punctuation character.\n", ch);
    }

    return 0;
}

注意: 在调用 wctype() 函数时,应该传递一个有效的宽字符属性名称作为参数,详见 5.1 的表格所示。

5.3 运行结果

在这里插入图片描述

6. wctob

6.1 函数说明

函数声明函数功能
int wctob(wint_t wc);用于将给定的宽字符转换为其对应的字节表示

参数:

  • wc : 一个宽字符值

返回值:

  • 如果能转换成功,则返回返回与之对应的字节表示;
  • 如果无法将给定宽字符转换为字节表示,则返回 EOF

6.2 演示示例

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

int main() 
{
    wchar_t ch = L'?';
    int byte;

    // 将 Unicode 字符转换为字节表示
    byte = wctob(ch);

    // 输出字节值
    printf("Byte value of %lc: %d (0x%02X)\n", ch, byte, byte);

    return 0;
}

注意: 在使用 wctob() 函数时,应该确保系统当前的本地化环境和编码方式与程序中使用的字符编码一致。如果字符编码不一致,可能会导致错误的结果或未定义行为。

6.3 运行结果

在这里插入图片描述

7. wctomb

7.1 函数说明

函数声明函数功能
int wctomb(char* s, wchar_t wc);用于将给定的宽字符转换为其对应的多字节字符表示

参数:

  • s : 一个指向字符数组的指针
  • wc : 一个宽字符值

返回值:

  • 如果能转换成功,则将 wc 转换为其对应的多字节字符表示,存储在 s 指向的字符数组中;
  • 如果 s 是空指针,则不执行任何操作,只返回转换所需的字符数;
  • 如果无法将给定宽字符转换为多字节字符表示,则返回 -1

7.2 演示示例

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

int main() 
{
    wchar_t ch = L'?';
    char mb[MB_CUR_MAX];
    int len;

    // 将 Unicode 字符转换为多字节字符表示
    len = wctomb(mb, ch);

    // 输出转换结果
    if (len >= 0) 
    {
        printf("Multibyte representation of %lc: ", ch);
        for (int i = 0; i < len; i++) {
            printf("%02X ", (unsigned char) mb[i]);
        }
        printf("\n");
    } 
    else 
    {
        printf("Failed to convert %lc to multibyte character.\n", ch);
    }

    return 0;
}

在上面的示例程序中,wctomb() 函数被用来将 Unicode 字符 ',' 转换为其对应的多字节字符表示,并将结果保存在字符数组 mb 中。然后,程序输出每个字节的十六进制值。

注意: 在使用 wctomb() 函数时,应该根据当前的本地化环境和编码方式调整字符数组的大小。可以使用 MB_CUR_MAX 宏来获取当前编码方式下一个多字节字符所需的最大字节数,从而确定字符数组的大小。

7.3 运行结果

在这里插入图片描述

8. wmemchr

8.1 函数说明

函数声明函数功能
void* wmemchr(const void* s, wchar_t c, size_t n);用于在宽字符数组中查找给定的宽字符

参数:

  • s : 一个指向宽字符数组的指针
  • c : 要查找的宽字符值
  • n : 要搜索的字节数

返回值:

  • 如果找到了 c,则返回指向该位置的指针;
  • 否则返回空指针。

8.2 演示示例

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

int main() 
{
    const wchar_t str[] = L"Hello, Huazie!";
    const wchar_t ch = L'u';
    wchar_t* pch;

    // 在宽字符数组中查找给定的宽字符
    // 使用 wcslen() 函数来获取 str 的长度,以指定要搜索的字节数 n
    pch = wmemchr(str, ch, wcslen(str));

    // 根据 pch,来判断是否找到,并输出结果
    if (pch)
        wprintf(L"Found '%lc' at position %d.\n", ch, (int)(pch - str));
    else
        wprintf(L"Could not find '%lc'.\n", ch);

    return 0;
}

8.3 运行结果

在这里插入图片描述

9. wmemcmp

9.1 函数说明

函数声明函数功能
int wmemcmp(const wchar_t* s1, const wchar_t* s2, size_t n);用于比较两个宽字符数组的前 n 个宽字符

参数:

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

返回值:

  • 如果两个数组相等,则返回零;
  • 如果 s1s2 小,则返回负数;
  • 如果 s1s2 大,则返回正数。

9.2 演示示例

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

int main() 
{
    const wchar_t str1[] = L"Hello";
    const wchar_t str2[] = L"Huazie";
    int result;

    // 比较两个宽字符数组
    result = wmemcmp(str1, str2, wcslen(str1));

    // 根据result,来判断,并输出结果
    if (result == 0)
        wprintf(L"%ls and %ls are equal.\n", str1, str2);
    else if (result < 0)
        wprintf(L"%ls is less than %ls.\n", str1, str2);
    else
        wprintf(L"%ls is greater than %ls.\n", str1, str2);

    return 0;
}

9.3 运行结果

在这里插入图片描述

10. wmemcpy

10.1 函数说明

函数声明函数功能
wchar_t* wmemcpy(wchar_t* dest, const wchar_t* src, size_t n);用于将一个宽字符数组的前 n 个宽字符复制到另一个宽字符数组

参数:

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

10.2 演示示例

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

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

    // 将一个宽字符数组复制到另一个宽字符数组
    wmemcpy(dest, src, wcslen(src) + 1);

    // 输出结果
    wprintf(L"Source string: %ls\n", src);
    wprintf(L"Destination string: %ls\n", dest);

    return 0;
}

注意: 在使用 wmemcpy() 函数时,应该确保目标数组有足够的空间来存储源数组的内容,以免发生缓冲区溢出。在上面的示例中,我们使用 wcslen() 函数来获取源数组的长度,然后加上 1,以包括字符串结尾的空字符 '\0'

10.3 运行结果

在这里插入图片描述

11. wmemset

11.1 函数说明

函数声明函数功能
wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n);用于将一个宽字符数组的前 n 个宽字符设置为给定的宽字符值

参数:

  • s : 一个指向宽字符数组的指针
  • c : 要设置的宽字符值
  • n : 要设置的字节数

11.2 演示示例

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

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

    // 修改前
    wprintf(L"Before: %ls\n", str);

    // 将一个宽字符数组的所有元素设置为给定的宽字符值X
    wmemset(str, L'X', wcslen(str));

    // 修改后
    wprintf(L"After : %ls\n", str);

    return 0;
}

在上面的示例程序中,

  • 首先,我们定义一个宽字符数组 str,并初始化为 "Hello Huazie!";
  • 接着,调用 wprintf() 函数输出修改之前的宽字符数组 str
  • 然后,调用 wmemset() 函数将宽字符数组 str 的所有元素都设置为 ‘X’;
  • 最后,再调用 wprintf() 函数输出修改之后的宽字符数组 str,并结束程序。

11.3 运行结果

在这里插入图片描述

12. wprintf

12.1 函数说明

函数声明函数功能
int wprintf(const wchar_t* format, ...);用于格式化输出宽字符字符串

参数:

  • format : 一个宽字符格式化字符串
  • … : 可选参数

12.2 演示示例

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

int main() 
{
    wchar_t name[] = L"Huazie";
    int age = 25;
    double height = 1.75;

    // 输出格式化的宽字符字符串
    wprintf(L"%ls %d %.2f\n", name, age, height);

    return 0;
}

12.3 运行结果

在这里插入图片描述

13. write

13.1 函数说明

函数声明函数功能
ssize_t write(int fd, const void* buf, size_t count);用于将数据写入文件描述符

参数:

  • fd : 要写入的文件描述符
  • buf: 写入数据的缓冲区
  • count: 写入的字节数

返回值:

  • 如果写入成功,则返回实际写入的字节数;
  • 如果出现错误,则返回 -1

13.2 演示示例

#include <stdio.h>
#include <unistd.h>

int main() 
{
    const char msg[] = "Hello, Huazie!\n";
    int nbytes;

    // 向标准输出流写入数据
    nbytes = write(STDOUT_FILENO, msg, sizeof(msg) - 1);

    // 输出结果
    if (nbytes == -1) 
    {
        perror("write");
        return 1;
    }

    return 0;
}

注意: 在使用 write() 函数时,应该确保给定的文件描述符是有效的,并且缓冲区中有足够的数据可供写入,以免发生未定义的行为

13.3 运行结果

在这里插入图片描述

14. wscanf

14.1 函数说明

函数声明函数功能
int wscanf(const wchar_t* format, ...);用于从标准输入流(stdin)读取格式化的宽字符输入

参数:

  • format : 一个宽字符格式化字符串
  • … : 可选参数

14.2 演示示例

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

int main() 
{
    wchar_t name[20];
    int age;

    // 从标准输入流读取格式化的宽字符输入
    wprintf(L"Please nput your name and age: ");
    wscanf(L"%ls %d", name, &age);

    // 输出结果
    wprintf(L"name: %ls age: %d\n", name, age);

    return 0;
}

14.3 运行结果

在这里插入图片描述

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

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

相关文章

非煤矿山电子封条建设算法 yolov8

非煤矿山电子封条建设算法模型通过yolov8网络模型AI视频智能分析技术&#xff0c;算法模型对作业状态以及出井入井人员数量变化、人员睡岗离岗等情况实时监测分析&#xff0c;及时发现异常动态&#xff0c;自动推送生成的违规截图报警信息。现代目标检测器大部分都会在正负样本…

免费下载Sketch模板素材一文搞定!

对于设计师来说&#xff0c;UI 模板素材是提高设计效率和保证设计质量的重要工具。然而&#xff0c;很多设计师在使用 Sketch 时&#xff0c;会遇到 Sketch 模板素材不足、格式不兼容或使用成本高等问题。本文将为你介绍一款资源齐全、跨平台、无需下载、免费使用的 Sketch 模板…

Tips for Deep Learning

目录 Recipe of Deep Learning Good Results on Training Data&#xff1f; New activation function Adaptive learning rate Good Results on Testing Data&#xff1f; Early Stopping Regularization Dropout Recipe of Deep Learning 我们要做的第一件事是&#x…

http协议在万维网的一生

tcp与udp的区别 http协议位于应用程序层&#xff0c;必须经过传输层进行通信 tcp即传输控制协议&#xff0c;首先通过三次握手建立连接&#xff0c;然后传输数据&#xff0c;数据传输成功后 通过四次挥手关闭连接&#xff0c;如有数据丢失则会重试保证数据传输可靠性 是一个面向…

树的前中后序以及广度优先搜索和深度优先搜索

文章目录 基本概念定义一棵树前序遍历中序遍历后序遍历BFS广度优先遍历DFS深度优先遍历 基本概念 树是一个有n个有限节点组成一个具有层次关系的集合&#xff0c;每个节点有0个或者多个子节点&#xff0c;没有父节点的节点称为根节点&#xff0c;也就是说除了根节点以外每个节…

TS38.331中need -M/R/N/S 的含义

need M&#xff1a;这种字段需要UE在不存在时维护&#xff1b;need R&#xff1a;当RRC中此字段不存在时&#xff0c;UE需要释放&#xff1b;need N&#xff1a;当此字段不存在时&#xff0c;UE不需要采取任何行动&#xff08;即UE不需要保持该字段的任何现有值&#xff09;&am…

如何使用单片机点亮LED灯,并使用按键控制[51单片机]

首先先看一下我的板子&#xff0c;如果我们板子不相同&#xff0c;可能操作也不太相同 我们就不讲底层原理了&#xff0c;直接看&#xff0c;我们可以看到板子上有 8个LED灯 那这个8个LED用什么来控制呢&#xff0c;我们先看底层的线路图&#xff0c;所有的LEDD都连接到了P2带后…

云原生技术中的容器技术有哪些?

文章目录 云原生技术中的容器技术有哪些1、云原生的含义2、容器的含义3、云原生的技术的基石&#xff1a;容器技术4、容器技术有哪些? 结语 云原生技术中的容器技术有哪些 在现今的安全行业中云原生安全技术中的容器安全技术有哪些呢&#xff0c;很多用户都不知道具体的含义以…

Linux程序设计之UDP通信

1.UDP通信是不可靠的、无连接的通信&#xff0c;客户端只需要服务器端的地址信息即可与之进行通信。UDP通信的基本流程如下&#xff1a; 2.利用UDP实现服务器端与客户端的通信如下&#xff1a; /*UDP通信*/ //服务端#include <stdio.h> #include <string.h> #incl…

低造价形状记忆合金相变温度DSC热分析替代技术:帕尔贴热电装置和电阻温度测量

摘要&#xff1a;形状记忆合金&#xff08;SMA&#xff09;是一种先进的金属材料&#xff0c;其物理和机械性能本质上依赖于温度。为了快速和低成本的实现SMA相变温度和热滞后性能的测试表征&#xff0c;基于更灵敏的电阻温度依赖关系&#xff0c;本文提出了采用帕尔贴TEC加热制…

论文学习笔记:ViT Vision Transformer An Image is worth 16X16 words

论文阅读&#xff1a;ViT Vision Transformer An Image is worth 16X16 words 今天介绍的是 Transformer 在视觉领域的一篇非常重要的论文&#xff0c;Vision Transformer&#xff0c;这篇文章发表在 2021 ICLR 的会议上。长久以来 CNN 一直是 CV 领域最主流的模型&#xff0c…

从零开始:开发一款应用程序的完整流程技巧

在数字化快速发展的现在&#xff0c;开发一款应用程序已经不是一件困难的事情。低代码应用开发平台的诞生更是让应用开发变成一项人人都能快速掌握的技能。之前&#xff0c;我们使用Java、C语言等传统的语言技术进行应用开发&#xff0c;来满足企业的业务应用需求。但是&#x…

rm / -rf指令的作用是?

学习Linux 指令&#xff0c;它是操作系统的前端&#xff0c;学好这部分内容一方面可以帮助你应对工作场景&#xff0c;另一方面可以让你在学习操作系统底层知识前&#xff0c;对 Linux 有一个大概的了解。 学习 Linux 指令之前&#xff0c;先来说一下什么是 Shell&#xff1f;S…

使用FFMPEG加载外挂字幕小记

ffmpeg版本&#xff1a; FFMEPEG 4.4 继上一篇简易播放器实现后&#xff0c;优化过程中&#xff0c;加载外挂字幕小记的过程和遇到的坑记录如下&#xff1a; 视频字幕分为三种。 内嵌字幕&#xff0c;字幕与视频图像合二为一&#xff0c;成为视频帧的一部分。 内封字幕&…

Python浪漫520表白代码

目录 前言 表白界面 跳动的爱心 漂浮的爱心 满屏表白代码 前言 520是每年的5月20日&#xff0c;因数字“520”与“我爱你”发音相似而被许多年轻人用作表达爱意的节日。这个节日起源于中国互联网文化&#xff0c;逐渐传递到其他国家和地区。在这一天&#xff0c;情侣们通…

C++:深入理解C++11新特性:Chapter3:左值和右值

Chapter3&#xff1a;左值和右值 1. 将右值绑定到 左值2. 将右值绑定到 常量左值引用3. 将右值绑定到右值引用总结&#xff1a;5. 左值&#xff0c;右值和右值引用6. 引用类型可以引用的值 在C语言中&#xff0c;我们常常会提起左值&#xff08;lvalue&#xff09;,右值&#x…

数组--part 5--螺旋矩阵(力扣59/54)(剑指offer 29)

文章目录 基本算法思想leetcode 59 螺旋矩阵 IIleetcode 54 螺旋矩阵剑指Offer 29 顺时针打印矩阵 基本算法思想 建议先去把题目看了&#xff0c;再来思考相关的代码。 错误的想法&#xff1a;实际上这种题型并不存在算法&#xff0c;只涉及到模拟&#xff0c;但是模拟难度并…

【51单片机】外部中断

&#x1f38a;专栏【51单片机】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Love Story】 &#x1f970;大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 目录 &#x1f354;原理 &#x1f354;注意管…

未来的数字签名方案:Dilithium、FALCON 和 SPHINCS+

1. 引言 当前的数字签名方案主要有&#xff1a; RSAECDSAEdDSA&#xff1a;已废弃DSA&#xff0c;将EdDSA纳入FIPS 186。 这些数字签名方案都不可抗量子攻击。为此&#xff0c;需要新的量子强健的签名方案&#xff0c;NIST引入了3种新的PQC数字签名标准化方案&#xff1a; …

软考A计划-真题-分类精讲汇总-第八章(面向对象)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…