当前位置: 首页 > article >正文

C语言学,标准库 <string.h>

<string.h> 是 C 标准库中的一个头文件,它包含了一系列用于处理 C 字符串(以空字符 \0 结尾的字符数组)的函数。这些函数提供了字符串的复制、比较、连接、搜索、长度计算等功能。

<string.h> 常用函数说明:

字符串长度计算
size_t strlen(const char *str);
计算字符串 str 的长度(不包括终止的空字符)。

字符串复制
char *strcpy(char *dest, const char *src);
将字符串 src 复制到字符串 dest。
char *strncpy(char *dest, const char *src, size_t n);
将最多 n 个字符从字符串 src 复制到字符串 dest。如果 src 的长度小于 n,则在 dest 的剩余部分填充空字符。

字符串连接
char *strcat(char *dest, const char *src);
将字符串 src 连接到字符串 dest 的末尾。
char *strncat(char *dest, const char *src, size_t n);
将最多 n 个字符从字符串 src 连接到字符串 dest 的末尾。

字符串比较
int strcmp(const char *str1, const char *str2);
比较字符串 str1 和 str2。返回值小于、等于或大于 0 分别表示 str1 小于、等于或大于 str2。
int strncmp(const char *str1, const char *str2, size_t n);
比较最多 n 个字符的字符串 str1 和 str2。

字符串搜索
char *strchr(const char *str, int c);
在字符串 str 中搜索字符 c 的第一次出现。
char *strrchr(const char *str, int c);
在字符串 str 中搜索字符 c 的最后一次出现。
char *strstr(const char *str1, const char *str2);
在字符串 str1 中搜索字符串 str2 的第一次出现。

字符串分割
char *strtok(char *str, const char *delim);
用分隔符 delim 分割字符串 str。该函数会修改 str,并返回一个指向第一个标记的指针。
char *strtok_r(char *str, const char *delim, char **saveptr);
与 strtok 类似,但线程安全,使用 saveptr 保存状态。

字符串错误处理
void strerror(int errnum, char *buf, size_t buflen);
将错误号 errnum 转换为对应的错误信息字符串,并存储在 buf 中。注意:这是 POSIX 标准的一部分,可能不在所有 C 标准库中可用。

内存设置和比较
void *memset(void *s, int c, size_t n);
将内存块 s 的前 n 个字节设置为字符 c(转换为无符号字符)。
int memcmp(const void *s1, const void *s2, size_t n);
比较内存块 s1 和 s2 的前 n 个字节。    

 

示例1:

#include <stdio.h>
#include <string.h>
int main() {
    char str1[] = "Hello";
    char str2[] = "World";

    int result = strcmp(str1, str2);
    if (result == 0) {
        printf("Strings are equal\n");
    } else {
        printf("Strings are not equal\n");
    }

    return 0;
}

 

示例2:

#include <stdio.h>
#include <string.h>
int main() {
    char src[] = "Hello, World!";
    char dest[50];

    strcpy(dest, src);
    printf("Copied string: %s\n", dest);

    return 0;
}

 


http://www.kler.cn/a/374932.html

相关文章:

  • 暴力破解漏洞
  • 国考报名照片无法使用照片审核工具上传失败的解决办法
  • 硅谷甄选(9)SKU模块
  • ESP32外设的简单使用
  • Spring Cloud +UniApp智慧工地源码,智慧工地综合解决方案,建筑工程云平台源码
  • 【问题解决】pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  • 自适应神经网络架构:原理解析与代码示例
  • 操作系统期中复习第一单元
  • Docker部署教程:打造流畅的斗地主网页小游戏
  • 大数据新视界 -- 大数据大厂之大数据环境下的网络安全态势感知
  • 访问jenkins页面报错
  • 5G三大应用场景中的URLLC
  • 全新大模型框架Haystack,搭建RAG pipeline
  • 从零开始的C++之旅——string类的模拟实现
  • 【Git】Git常用命令
  • (蓝桥杯C/C++)——常用库函数
  • 【Deno运行时】深入解析Deno:下一代JavaScript和TypeScript运行时
  • cisco网络安全技术第4章测试及考试
  • 高效扶贫:SpringBoot精准扶贫系统
  • 笔记整理—linux驱动开发部分(4)驱动框架
  • 【Nginx】编译安装(Centos)
  • Windows下Jenkins自动启动jar包
  • 技术总结(十九)
  • unity后端kbengine用DOTween让 移动同步丝滑
  • HJ106 字符逆序
  • 发布 NPM 包时,终端显示发布成功但实际上版本并没有更新,可能是由于以下原因