32 C 语言字符处理函数详解:isalnum、isalpha、iscntrl、isprint、isgraph、ispunct、isspace

1 isalnum() 函数

1.1 函数原型

#include <ctype.h>int isalnum(int c);

1.2 功能说明

        isalnum() 函数用于检查传入的整数参数是否为 ASCII 编码的字母或数字字符('A' - 'Z'、'a' - 'z'、'0' - '9',对应 ASCII 值 65 - 90、97 - 122、48 - 57)

  • 参数:

    • c 表示要检查的字符,以 int 形式传递(通常是 char 类型转换而来的 ASCII 码值)

  • 返回值:

    • 如果 c 是字母或数字字符,返回非零值(通常是 1,表示真)
    • 如果 c 不是字母或数字字符,返回 0(表示假)

1.3 注意事项

  1. 头文件依赖:

    1. 使用 isalnum() 函数前,必须包含 <ctype.h> 头文件,否则编译器可能无法识别该函数,导致编译错误或链接失败。

  2. 参数范围限制:

    • 虽然函数参数类型为 int,但实际应传递 unsigned char 类型的值或 EOF(通常用于文件操作结束标志)
    • 如果传入的值超出 unsigned char 范围(0 - 255)或 EOF,函数的行为是未定义的(可能导致程序崩溃或返回错误结果)。
    • 例如:直接传递负的 char 值(如 -1)或大于 127 的值时,函数会返回 0。
  3. 区域设置依赖:

    • isalnum() 的行为受区域设置(locale)影响,但在默认的 "C" 区域设置中,仅识别 ASCII 字母和数字字符。
    • 如果程序依赖其他区域设置(如非 ASCII 编码),可能需要使用其他函数或手动处理。

1.4 应用场景

  1. 用户输入验证:在用户注册或登录时,检查用户名或密码是否仅包含字母和数字(例如,不允许特殊字符)。

  2. 数据过滤:在处理用户提交的表单数据时,过滤掉非字母或数字的字符(例如,清理电话号码中的空格或连字符)。

  3. 字符串解析:在解析命令行参数或配置文件时,确保参数仅包含有效字符(例如,文件名或标识符)。

  4. 游戏开发:在验证玩家输入的昵称或聊天消息时,限制字符类型(例如,防止使用特殊字符或表情符号)。

1.5 示例程序

#include <stdio.h>
#include <ctype.h> // 引入 ctype.h 头文件以使用 isalnum 函数int main()
{char str[] = "Hello123!@#"; // 包含字母、数字和符号的字符串printf("字符串 \"%s\" 中的字母或数字字符:\n", str);for (int i = 0; str[i] != '\0'; i++){if (isalnum(str[i])){printf("'%c' 是字母或数字字符\n", str[i]);}else{printf("'%c' 不是字母或数字字符\n", str[i]);}}// 检查单个字符char ch = '7';if (isalnum(ch)){printf("\n'%c' 是一个字母或数字字符\n", ch);}else{printf("\n'%c' 不是一个字母或数字字符\n", ch);}return 0;
}

        程序在 VS Code 中的运行结果如下所示:


2 isalpha() 函数

2.1 函数原型

#include <ctype.h>int isalpha(int c);

2.2 功能说明

        isalpha() 函数用于检查传入的整数参数是否为 ASCII 编码的字母字符('A' - 'Z' 或 'a' - 'z',对应 ASCII 值 65 - 90、97 - 122)

  • 参数:

    • c 表示要检查的字符,以 int 形式传递(通常是 char 类型转换而来的 ASCII 码值)

  • 返回值:

    • 如果 c 是字母字符(大写或小写),返回非零值(通常是 1,表示真)
    • 如果 c 不是字母字符(如数字、符号、空格等),返回 0(表示假)

2.3 注意事项

  1. 头文件依赖:

    1. 使用 isalpha() 函数前,必须包含 <ctype.h> 头文件,否则编译器可能无法识别该函数,导致编译错误或链接失败。

  2. 参数范围限制:

    • 虽然函数参数类型为 int,但实际应传递 unsigned char 类型的值或 EOF(通常用于文件操作结束标志)
    • 如果传入的值超出 unsigned char 范围(0 - 255)或 EOF,函数的行为是未定义的(可能导致程序崩溃或返回错误结果)。
    • 例如:直接传递负的 char 值(如 -1)或大于 127 的值时,函数会返回 0。
  3. 区域设置依赖:

    • isalpha() 的行为受区域设置(locale)影响,但在默认的 "C" 区域设置中,仅识别 ASCII 字母字符。
    • 如果程序依赖其他区域设置(如非 ASCII 编码,如带重音符号的字母),可能需要使用其他函数或手动处理。

2.4 应用场景

  1. 输入验证:确保用户输入的敏感信息(如姓名、密码)仅包含字母,避免数字或符号导致程序异常。

  2. 字符串处理:从混合字符串(如 "Name: Alice123")中提取或统计字母字符,便于后续处理(如大小写转换、格式化输出)。

  3. 数据清洗:在文本分析或数据预处理时,移除非字母字符(如数字、标点符号),保留有效文本内容。

  4. 词法分析:在编译器开发中,识别代码中的标识符(如变量名 count),为语法分析阶段提供基础。

2.5 示例程序

#include <stdio.h>
#include <ctype.h> // 引入 ctype.h 头文件以使用 isalpha 函数int main()
{char str[] = "Hello123!@#"; // 包含字母、数字和符号的字符串printf("字符串 \"%s\" 中的字母字符:\n", str);for (int i = 0; str[i] != '\0'; i++){if (isalpha(str[i])){printf("'%c' 是字母字符\n", str[i]);}else{printf("'%c' 不是字母字符\n", str[i]);}}// 检查单个字符char ch = 'G';if (isalpha(ch)){printf("\n'%c' 是一个字母字符\n", ch);}else{printf("\n'%c' 不是一个字母字符\n", ch);}return 0;
}

        程序在 VS Code 中的运行结果如下所示:


3 iscntrl() 函数

3.1 函数原型

#include <ctype.h>int iscntrl(int c);

3.2 功能说明

        iscntrl() 函数用于检查传入的整数参数是否为 ASCII 编码的控制字符(Control Character)。控制字符是不可见的字符,通常用于终端控制、通信协议或文件格式中的特殊操作(如换行符 \n、制表符 \t、响铃符 \a 等)。

  • 参数:

    • c 表示要检查的字符,以 int 形式传递(通常是 char 类型转换而来的 ASCII 码值)

  • 返回值:

    • 如果 c 是控制字符(ASCII 值 0 - 31 或 127),返回非零值(通常是 1,表示真)
    • 如果 c 不是控制字符(如可打印字符、空格等),返回 0(表示假)

3.3 注意事项

  1. 头文件依赖:

    1. 使用 iscntrl() 函数前,必须包含 <ctype.h> 头文件,否则编译器可能无法识别该函数,导致编译错误或链接失败。

  2. 参数范围限制:

    • 虽然函数参数类型为 int,但实际应传递 unsigned char 类型的值或 EOF(通常用于文件操作结束标志)
    • 如果传入的值超出 unsigned char 范围(0 - 255)或 EOF,函数的行为是未定义的(可能导致程序崩溃或返回错误结果)。
    • 例如:直接传递负的 char 值(如 -1)或大于 127 的值时,函数会返回 0。
  3. 区域设置依赖:

    • iscntrl() 的行为受区域设置(locale)影响,但在默认的 "C" 区域设置中,仅识别 ASCII 控制字符。
    • 如果程序依赖其他区域设置(如非 ASCII 编码),可能需要使用其他函数或手动处理。

3.4 应用场景

  1. 输入验证:检测输入流中是否包含控制字符(如终端输入或文件读取),避免控制字符干扰程序逻辑。

  2. 数据清洗:在文本处理或日志分析时,移除控制字符(如 \n、\t),保留可打印字符以提升数据可读性。

  3. 协议解析:在通信协议(如串口通信、网络协议)中,识别控制字符以执行特定操作(如换行、响铃)。

  4. 二进制文件处理:在解析二进制文件时,区分控制字符和普通数据,确保文件格式正确。

3.5 示例程序

#include <stdio.h>
#include <ctype.h> // 引入 ctype.h 头文件以使用 iscntrl 函数int main()
{char str[] = "Hello\tW\to\a!"; // 包含控制字符(制表符、响铃符)的字符串printf("字符串 \"%s\" 中的控制字符:\n", str);for (int i = 0; str[i] != '\0'; i++){if (iscntrl(str[i])){printf("字符'%c'(ASCII:%d)是控制字符\n", str[i], str[i]);}else{printf("字符'%c'(ASCII:%d)不是控制字符\n", str[i], str[i]);}}// 检查单个字符char ch = '\a'; // 响铃符(ASCII 7)if (iscntrl(ch)){printf("\n字符'%c'(ASCII:%d)是一个控制字符\n", ch, ch);}else{printf("\n字符'%c'(ASCII:%d)不是一个控制字符\n", ch, ch);}return 0;
}

        程序在 VS Code 中的运行结果如下所示:


4 isprint() 函数

4.1 函数原型

#include <ctype.h>int isprint(int c);

4.2 功能说明

        isprint() 函数用于检查传入的整数参数是否为 ASCII 编码的可打印字符(Printable Character)。可打印字符包括字母、数字、标点符号、空格(ASCII 值 32 - 126),但不包括控制字符(如 \n、\t)或不可见字符

  • 参数:

    • c 表示要检查的字符,以 int 形式传递(通常是 char 类型转换而来的 ASCII 码值)

  • 返回值:

    • 如果 c 是可打印字符(ASCII 值 32-126),返回非零值(通常是 1,表示真)
    • 如果 c 不是可打印字符(如控制字符、删除符 \x7F),返回 0(表示假)

4.3 注意事项

  1. 头文件依赖:

    1. 使用 isprint() 函数前,必须包含 <ctype.h> 头文件,否则编译器可能无法识别该函数,导致编译错误或链接失败。

  2. 参数范围限制:

    • 虽然函数参数类型为 int,但实际应传递 unsigned char 类型的值或 EOF(通常用于文件操作结束标志)
    • 如果传入的值超出 unsigned char 范围(0 - 255)或 EOF,函数的行为是未定义的(可能导致程序崩溃或返回错误结果)。
    • 例如:直接传递负的 char 值(如 -1)或大于 127 的值时,函数会返回 0。
  3. 区域设置依赖:

    • isprint() 的行为受区域设置(locale)影响,但在默认的 "C" 区域设置中,仅识别 ASCII 可打印字符。
    • 如果程序依赖其他区域设置(如非 ASCII 编码),可能需要使用其他函数或手动处理。

4.4 应用场景

  1. 输入验证:确保用户输入的敏感信息(如密码、用户名)仅包含可打印字符,避免控制字符导致程序异常。

  2. 数据清洗:在文本处理或日志分析时,移除不可打印字符(如控制字符),保留有效内容以提升数据可读性。

  3. 协议解析:在通信协议(如串口通信、网络协议)中,验证接收到的数据是否为可打印字符,避免非法字符干扰。

  4. 二进制文件处理:在解析文本文件时,区分可打印字符和二进制数据,确保文件内容正确。

4.5 示例程序

#include <stdio.h>
#include <ctype.h> // 引入 ctype.h 头文件以使用 isprint 函数int main()
{char str[] = "He\nWo\t!\a"; // 包含控制字符(换行符、制表符、响铃符)的字符串printf("字符串 \"%s\" 中的可打印字符:\n", str);for (int i = 0; str[i] != '\0'; i++){if (isprint(str[i])){printf("字符 %d ('%c') 是可打印字符\n", str[i], str[i]);}else{printf("字符 %d ('%c') 不是可打印字符\n", str[i], str[i]);}}// 检查单个字符char ch = ' '; // 空格(ASCII 32)if (isprint(ch)){printf("\n字符 %d ('%c') 是一个可打印字符\n", ch, ch);}else{printf("\n字符 %d ('%c') 不是一个可打印字符\n", ch, ch);}return 0;
}

        程序在 VS Code 中的运行结果如下所示:


5 isgraph() 函数

5.1 函数原型

#include <ctype.h>int isgraph(int c);

5.2 功能说明

        isgraph() 函数用于检查传入的整数参数是否为 ASCII 编码的图形字符(Graphic Character)图形字符是可打印字符(ASCII 值 33 - 126),但不包括空格(ASCII 值 32)。这意味着 isgraph() 仅识别字母、数字、标点符号等非空格的可打印字符。

  • 参数:

    • c 表示要检查的字符,以 int 形式传递(通常是 char 类型转换而来的 ASCII 码值)

  • 返回值:

    • 如果 c 是图形字符(ASCII 值 33-126),返回非零值(通常是 1,表示真)
    • 如果 c 不是图形字符(如空格、控制字符、删除符 \x7F),返回 0(表示假)

5.3 注意事项

  1. 头文件依赖:

    1. 使用 isgraph() 函数前,必须包含 <ctype.h> 头文件,否则编译器可能无法识别该函数,导致编译错误或链接失败。

  2. 参数范围限制:

    • 虽然函数参数类型为 int,但实际应传递 unsigned char 类型的值或 EOF(通常用于文件操作结束标志)
    • 如果传入的值超出 unsigned char 范围(0 - 255)或 EOF,函数的行为是未定义的(可能导致程序崩溃或返回错误结果)。
    • 例如:直接传递负的 char 值(如 -1)或大于 127 的值时,函数会返回 0。
  3. 区域设置依赖:

    • isgraph() 的行为受区域设置(locale)影响,但在默认的 "C" 区域设置中,仅识别 ASCII 图形字符。
    • 如果程序依赖其他区域设置(如非 ASCII 编码),可能需要使用其他函数或手动处理。

5.4 应用场景

  1. 输入验证:确保用户输入的敏感信息(如密码、验证码)仅包含非空格的可打印字符,避免无效字符干扰程序逻辑。

  2. 数据清洗:在文本处理或日志分析时,移除空格或不可打印字符(如控制字符),保留有效内容以提升数据可读性。

  3. 协议解析:在通信协议(如串口通信、网络协议)中,验证接收到的数据是否为非空格的可打印字符,避免非法字符干扰。

  4. 格式化输出:在生成格式化文本(如表格、报告)时,确保输出内容不包含空格或控制字符,提升输出质量。

5.5 示例程序

#include <stdio.h>
#include <ctype.h> // 引入 ctype.h 头文件以使用 isgraph 函数int main()
{char str[] = "He\nWo\t!"; // 包含控制字符(换行符、制表符)的字符串printf("字符串 \"%s\" 中的图形字符:\n", str);for (int i = 0; str[i] != '\0'; i++){if (isgraph(str[i])){printf("字符 %d ('%c') 是图形字符\n", str[i], str[i]);}else{printf("字符 %d ('%c') 不是图形字符\n", str[i], str[i]);}}// 检查单个字符char ch = ' '; // 空格(ASCII 32)if (isgraph(ch)){printf("\n字符 %d ('%c') 是一个图形字符\n", ch, ch);}else{printf("\n字符 %d ('%c') 不是一个图形字符\n", ch, ch);}return 0;
}

        程序在 VS Code 中的运行结果如下所示:


6 ispunct() 函数

6.1 函数原型

#include <ctype.h>int ispunct(int c);

6.2 功能说明

        ispunct() 函数用于检查传入的整数参数是否为 ASCII 编码的标点符号(Punctuation Character)。标点符号是可打印字符(ASCII 值 33-126)中不属于字母、数字或空格的字符,例如 ,、.、!、?、; 等。

  • 参数:

    • c 表示要检查的字符,以 int 形式传递(通常是 char 类型转换而来的 ASCII 码值)

  • 返回值:

    • 如果 c 是标点符号(ASCII 值 33-126 中非字母、非数字、非空格的字符),返回非零值(通常是 1,表示真)
    • 如果 c 不是标点符号(如字母、数字、空格、控制字符),返回 0(表示假)

6.3 注意事项

  1. 头文件依赖:

    1. 使用 ispunct() 函数前,必须包含 <ctype.h> 头文件,否则编译器可能无法识别该函数,导致编译错误或链接失败。

  2. 参数范围限制:

    • 虽然函数参数类型为 int,但实际应传递 unsigned char 类型的值或 EOF(通常用于文件操作结束标志)
    • 如果传入的值超出 unsigned char 范围(0 - 255)或 EOF,函数的行为是未定义的(可能导致程序崩溃或返回错误结果)。
    • 例如:直接传递负的 char 值(如 -1)或大于 127 的值时,函数会返回 0。
  3. 区域设置依赖:

    • ispunct() 的行为受区域设置(locale)影响,但在默认的 "C" 区域设置中,仅识别 ASCII 标点符号。
    • 如果程序依赖其他区域设置(如非 ASCII 编码),可能需要使用其他函数或手动处理。

6.4 应用场景

  1. 文本解析:在自然语言处理或文本分析中,识别句子边界(如 !、?)或分隔符(如 ,、;),辅助语法分析。

  2. 输入验证:确保用户输入的特定字段(如密码、用户名)不包含非法标点符号,避免程序逻辑错误。

  3. 数据清洗:在日志分析或数据预处理时,移除或替换标点符号,保留有效内容以提升数据可读性。

  4. 格式化输出:在生成格式化文本(如表格、报告)时,控制标点符号的使用,确保输出符合规范。

6.5 示例程序

#include <stdio.h>
#include <ctype.h> // 引入 ctype.h 头文件以使用 ispunct 函数int main()
{char str[] = "Hi! How? !,./"; // 包含标点符号的字符串printf("字符串 \"%s\" 中的标点符号:\n", str);for (int i = 0; str[i] != '\0'; i++){if (ispunct(str[i])){printf("字符 %d ('%c') 是标点符号\n", str[i], str[i]);}else{printf("字符 %d ('%c') 不是标点符号\n", str[i], str[i]);}}// 检查单个字符char ch = '.'; // 标点符号(ASCII 46)if (ispunct(ch)){printf("\n'%c' 是一个标点符号\n", ch);}else{printf("\n'%c' 不是一个标点符号\n", ch);}return 0;
}

        程序在 VS Code 中的运行结果如下所示:


7 isspace() 函数

7.1 函数原型

#include <ctype.h>int isspace(int c);

7.2 功能说明

        isspace() 函数用于检查传入的整数参数是否为 ASCII 编码的空白字符(Whitespace Character)空白字符包括空格( )、换行符(\n)、制表符(\t)、回车符(\r)、垂直制表符(\v)和换页符(\f)

  • 参数:

    • c 表示要检查的字符,以 int 形式传递(通常是 char 类型转换而来的 ASCII 码值)

  • 返回值:

    • 如果 c 是空白字符(ASCII 值 9、10、11、12、13、32),返回非零值(通常是 1,表示真)
    • 如果 c 不是空白字符(如字母、数字、标点符号),返回 0(表示假)

7.3 注意事项

  1. 头文件依赖:

    1. 使用 isspace() 函数前,必须包含 <ctype.h> 头文件,否则编译器可能无法识别该函数,导致编译错误或链接失败。

  2. 参数范围限制:

    • 虽然函数参数类型为 int,但实际应传递 unsigned char 类型的值或 EOF(通常用于文件操作结束标志)
    • 如果传入的值超出 unsigned char 范围(0 - 255)或 EOF,函数的行为是未定义的(可能导致程序崩溃或返回错误结果)。
    • 例如:直接传递负的 char 值(如 -1)或大于 127 的值时,函数会返回 0。
  3. 区域设置依赖:

    • isspace() 的行为受区域设置(locale)影响,但在默认的 "C" 区域设置中,仅识别 ASCII 空白字符。
    • 如果程序依赖其他区域设置(如非 ASCII 编码),可能需要使用其他函数或手动处理。

7.4 应用场景

  1. 文本解析:在自然语言处理或文本分析中,识别句子或段落分隔符(如换行符、制表符),辅助语法分析。

  2. 输入验证:确保用户输入的特定字段(如用户名、密码)不包含非法空白字符,避免程序逻辑错误。

  3. 数据清洗:在日志分析或数据预处理时,移除或替换多余的空白字符,保留有效内容以提升数据可读性。

  4. 格式化输出:在生成格式化文本(如表格、报告)时,控制空白字符的使用,确保输出符合规范。

7.5 示例程序

#include <stdio.h>
#include <ctype.h> // 引入 ctype.h 头文件以使用 isspace 函数int main()
{char str[] = "He l\nW d\t!"; // 包含空白字符的字符串printf("字符串 \"%s\" 中的空白字符:\n", str);for (int i = 0; str[i] != '\0'; i++){if (isspace(str[i])){printf("字符 %d ('%c') 是空白字符\n", str[i], str[i]);}else{printf("字符 %d ('%c') 不是空白字符\n", str[i], str[i]);}}// 检查单个字符char ch = ' '; // 空格(ASCII 32)if (isspace(ch)){printf("\n'%c' 是一个空白字符\n", ch);}else{printf("\n'%c' 不是一个空白字符\n", ch);}return 0;
}

        程序在 VS Code 中的运行结果如下所示:


8 字符处理函数总结

函数名功能描述输入类型返回值类型返回值说明
isalnum检查字符是否为字母或数字(a-z, A-Z, 0-9)int(字符的 ASCII 值)int非零值(真)如果字符是字母或数字,否则 0(假)
isalpha检查字符是否为字母(a-z, A-Z)int(字符的 ASCII 值)int非零值(真)如果字符是字母,否则 0(假)
iscntrl检查字符是否为控制字符(如换行符、制表符等,ASCII 0-31 和 127)int(字符的 ASCII 值)int非零值(真)如果字符是控制字符,否则 0(假)
isprint检查字符是否为可打印字符(ASCII 32-126)int(字符的 ASCII 值)int非零值(真)如果字符是可打印字符,否则 0(假)
isgraph检查字符是否为图形字符(可打印且非空格字符,ASCII 33-126)int(字符的 ASCII 值)int非零值(真)如果字符是图形字符,否则 0(假)
ispunct检查字符是否为标点符号(如 !, ", #, $, %, 等)int(字符的 ASCII 值)int非零值(真)如果字符是标点符号,否则 0(假)
isspace检查字符是否为空白字符(如空格、制表符、换行符等)int(字符的 ASCII 值)int非零值(真)如果字符是空白字符,否则 0(假)
  • 这些函数都定义在 <ctype.h> 头文件中。
  • 输入参数通常是字符的 ASCII 值(即 int 类型),但通常通过传递字符(如 'a')来隐式转换。
  • 返回值类型为 int,通常用于布尔判断(非零为真,0 为假)。
  • isalnum 是 isalpha 和 isdigit 的组合,检查字符是否为字母或数字。
  • isgraph 和 isprint 的区别在于 isgraph 不包括空格字符(ASCII 32),而 isprint 包括。
  • isspace 检查的空白字符包括空格、制表符(\t)、换行符(\n)、回车符(\r)、垂直制表符(\v)和换页符(\f)。 

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

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

相关文章

在网络排错中,经常会用到的操作命令和其作用

在网络排错中&#xff0c;经常会用到的操作命令和其作用 网络排错是确保网络连接正常运行的重要环节&#xff0c;通过使用一系列工具和命令&#xff0c;可以有效诊断和解决网络问题。以下是常用的网络排错命令及其作用&#xff1a; 1.ping ping 是一个用于测试主机之间连通性…

C++中友元(friend)高级应用和使用示例

下面列出几个 高级友元应用场景 与典型设计模式&#xff0c;并配以示例&#xff0c;帮助大家在实际项目中灵活运用 friend 机制。 1. ADL 友元注入&#xff08;“注入式友元”&#xff09; 场景&#xff1a;为某个类型定义非成员操作符&#xff08;如算术、流插入等&#xff0…

TCP相关问题 第一篇

TCP相关问题1 1.TCP主动断开连接方为什么需要等待2MSL 如上图所示:在被动链接方调用close&#xff0c;发送FIN时进入LAST_ACK状态&#xff0c;但未收到主动连接方的ack确认&#xff0c;需要被动连接方重新发送一个FIN&#xff0c;而为什么是2MSL&#xff0c;一般认为丢失ack在…

STM32启动文件学习(startup_stm32f40xx.s)

原代码 ;******************** (C) COPYRIGHT 2016 STMicroelectronics ******************** ;* File Name : startup_stm32f40xx.s ;* Author : MCD Application Team ;* version : V1.8.0 ;* date : 09-November-2016 ;* Desc…

uni-app学习笔记二十三--交互反馈showToast用法

showToast部分文档位于uniapp官网-->API-->界面&#xff1a;uni.showToast(OBJECT) | uni-app官网 uni.showToast(OBJECT) 用于显示消息提示框 OBJECT参数说明 参数类型必填说明平台差异说明titleString是提示的内容&#xff0c;长度与 icon 取值有关。iconString否图…

【Ragflow】26.RagflowPlus(v0.4.0):完善解析逻辑/文档撰写模式全新升级

概述 在历经半个月的间歇性开发后&#xff0c;RagflowPlus再次迎来一轮升级&#xff0c;正式发布v0.4.0。 开源地址&#xff1a;https://github.com/zstar1003/ragflow-plus 更新方法 下载仓库最新代码&#xff1a; git clone https://github.com/zstar1003/ragflow-plus.…

【论文解读】Toolformer: 语言模型自学使用工具

1st author: ‪Timo Schick‬ - ‪Google Scholar‬ paper: Toolformer: Language Models Can Teach Themselves to Use Tools | OpenReview NeurIPS 2023 oral code: lucidrains/toolformer-pytorch: Implementation of Toolformer, Language Models That Can Use Tools, by…

Spring 官方推荐构造函数注入

1. 依赖关系明确 构造函数注入可以清晰地声明类的依赖关系&#xff0c;所有必需的依赖项都通过构造函数参数传递&#xff0c;使得代码的可读性更高。这种方式让类的使用者能够直观地了解类的依赖&#xff0c;而不需要通过注解或反射来猜测。 2. 增强代码健壮性 构造函数注入…

[深度学习]搭建开发平台及Tensor基础

一、实验目的 1. 掌握Windows下PyTorch 深度学习环境的配置 2. 掌握一种PyTorch开发工具 3. 理解张量并掌握Tensor的常用操作&#xff08;创建、调整形状、加、减、乘、除、取绝对值、比较操作、数理统计操作 4. 掌握Tensor与Numpy的互相转换操作 5. 掌握Tensor 的降维和…

【Zephyr 系列 14】使用 MCUboot 实现 BLE OTA 升级机制:构建安全可靠的固件分发系统

🧠关键词:Zephyr、MCUboot、OTA 升级、BLE DFU、双分区、Bootloader、安全固件管理 📌面向读者:希望基于 Zephyr 为 BLE 设备加入安全 OTA 升级功能的开发者 📊预计字数:5200+ 字 🧭 前言:为什么你需要 OTA? 随着设备部署数量增多与产品生命周期延长,远程升级(…

App Search 和 Workplace Search 独立产品现已弃用

作者&#xff1a;来自 Elastic The Search Product Team App Search 和 Workplace Search 的核心功能已集成到 Elasticsearch 和 Kibana 中。 我们宣布在 9.0 版本中弃用 App Search 和 Workplace Search。 如果你是 Elastic 的客户&#xff0c;当前正在使用 App Search 和 Wo…

Spring Boot + OpenAI 构建基于RAG的智能问答系统

一、技术架构设计 1.1 系统架构图 [前端]│▼ (HTTP/REST) [Spring Boot Controller]│▼ (Service Call) [问答处理服务层]├─▶ [知识库检索模块] ──▶ [向量数据库]└─▶ [OpenAI集成模块] ──▶ [OpenAI API]│▼ [结果组装与返回] 1.2 技术选型 组件技术栈版本要求…

Oracle实用参考(13)——Oracle for Linux物理DG环境搭建(2)

13.2. Oracle for Linux物理DG环境搭建 Oracle 数据库的DataGuard技术方案,业界也称为DG,其在数据库高可用、容灾及负载分离等方面,都有着非常广泛的应用,对此,前面相关章节已做过较为详尽的讲解,此处不再赘述。 需要说明的是, DG方案又分为物理DG和逻辑DG,两者的搭建…

【论文阅读29】区间预测CIPM(2025)

这篇论文主要研究的是滑坡位移的区间预测方法&#xff0c;提出了一种新型的预测模型&#xff0c;叫做复合区间预测模型&#xff08;CIPM&#xff09;&#xff0c;并以三峡库区的白家堡滑坡为案例进行了应用和验证。论文的核心内容和贡献包括&#xff1a; 背景与问题 滑坡位移预…

Linux 文件系统底层原理笔记:磁盘结构、ext2 文件系统与软硬链接解析

文章目录 一、理解硬件1.1 磁盘、服务器、机柜、机房1.2 磁盘物理结构1.3 磁盘的存储结构1.4 磁盘的逻辑结构1.4.1 理解过程1.4.2 真实过程 1.5 CHS && LBA地址 二、引入文件系统2.1 引入"块"概念2.2 引入"分区"概念2.3 引入"inode"概念…

75Qt窗口_Qt窗口概览

Qt 窗⼝ 是通过 QMainWindow类 来实现的。 QMainWindow 是⼀个为⽤⼾提供主窗⼝程序的类&#xff0c;继承⾃ QWidget 类&#xff0c;并且提供了⼀个预定义的布局。 QMainWindow 包含 ⼀个菜单栏&#xff08;menu bar&#xff09;、多个⼯具栏(tool bars)、多个浮动窗⼝&#x…

Appium+python自动化(九)- 定位元素工具

简介 环境搭建好了&#xff0c;其他方面的知识也准备的差不多了&#xff0c;那么就开始下一步元素定位&#xff0c;元素定位主要介绍如何使用uiautomatorviewer&#xff0c;通过定位到页面上的元素&#xff0c;然后进行相应的点击等操作. 此外在介绍另一款工具&#xff1a;Insp…

apipost将token设置为环境变量

右上角 可以新增或者是修改当前的环境 环境变量增加一个token,云端值和本地值可以不用写 在返回token的接口里设置后执行操作&#xff0c;通常是登录的接口 右侧也有方法提示 //设置环境变量 apt.environment.set("token", response.json.data.token); 在需要传t…

【Docker 02】Docker 安装

&#x1f308; 一、各版本的平台支持情况 ⭐ 1. Server 版本 Server 版本的 Docker 就只有个命令行&#xff0c;没有界面。 Platformx86_64 / amd64arm64 / aarch64arm(32 - bit)s390xCentOs√√Debian√√√Fedora√√Raspbian√RHEL√SLES√Ubuntu√√√√Binaries√√√ …

青少年编程与数学 01-011 系统软件简介 08 Windows操作系统

青少年编程与数学 01-011 系统软件简介 08 Windows操作系统 1. Windows操作系统的起源与发展1.1 早期版本&#xff08;1985-1995&#xff09;1.2 Windows 9x系列&#xff08;1995-2000&#xff09;1.3 Windows NT系列&#xff08;1993-2001&#xff09;1.4 Windows XP及以后版…