C语言 字符串常用操作

在C语言中,字符串操作主要依赖于标准库 <string.h> 中的函数。以下是一些常用的字符串操作方法:

  1. 字符串长度
    • strlen(const char *str): 返回字符串 str 的长度(不包括终止的 null 字符)。
  2. 字符串复制
    • strcpy(char *dest, const char *src): 将字符串 src 复制到 dest
    • strncpy(char *dest, const char *src, size_t n): 将字符串 src 的前 n 个字符复制到 dest。如果 src 的长度小于 n,则 dest 的剩余部分将被填充为 null 字符。
  3. 字符串连接
    • strcat(char *dest, const char *src): 将字符串 src 连接到 dest 的末尾。
    • strncat(char *dest, const char *src, size_t n): 将字符串 src 的前 n 个字符连接到 dest 的末尾。
  4. 字符串比较
    • strcmp(const char *str1, const char *str2): 比较 str1 和 str2。如果 str1 < str2,返回负值;如果 str1 == str2,返回0;如果 str1 > str2,返回正值。
    • strncmp(const char *str1, const char *str2, size_t n): 比较 str1 和 str2 的前 n 个字符。
  5. 字符串查找
    • strchr(const char *str, int c): 在 str 中查找字符 c 的第一次出现,并返回指向该字符的指针。如果未找到,则返回 NULL。
    • strrchr(const char *str, int c): 在 str 中查找字符 c 的最后一次出现,并返回指向该字符的指针。如果未找到,则返回 NULL。
    • strstr(const char *str1, const char *str2): 在 str1 中查找 str2 的第一次出现,并返回指向 str1 中该位置的指针。如果未找到,则返回 NULL。
  6. 字符串分割
    • strtok(char *str, const char *delim): 使用 delim 中的字符来分割 str,并返回指向第一个子字符串的指针。这个函数通常用于循环中,以获取后续的子字符串。
  7. 字符串大小写转换
    • tolower(int c): 将字符 c 转换为小写(如果它是一个大写字母)。
    • toupper(int c): 将字符 c 转换为大写(如果它是一个小写字母)。
  8. 字符串内存分配
    • strdup(const char *str): 分配足够的内存来复制 str,并返回指向新字符串的指针。如果内存分配失败,则返回 NULL。
  9. 字符串格式化
    • sprintf(char *str, const char *format, ...): 将格式化的数据写入 str
    • snprintf(char *str, size_t size, const char *format, ...): 将格式化的数据写入 str,但不超过 size 个字符。这可以防止缓冲区溢出。
  10. 字符串反转
    • 标准库中并没有直接提供字符串反转的函数,但你可以自己实现或使用第三方库。

请注意,由于C语言中的字符串是以 null 结尾的字符数组,因此所有的字符串操作都需要注意避免缓冲区溢出和未定义的字符串。使用 strncpystrncat 和 snprintf 等函数可以帮助减少这种风险。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值