c语言中的字符串相关的API实现

c语言中的字符串

字符串在c语言中的含义

  • c语言中没有为字符串设置单独的数据类型,而是通过字符数组实现的。定义字符串的语法:char str[n] = “”,其中n可以不用填写让编译器自己取计算字符数组有几个字符数。
// 语法格式
char str[10] = "hello";
char str1[] = "c language";
char *str2 = "Java";

字符串API

  • strcpy(dest,src) 字符串赋值或复制,特点是不安全,内部没有做边界判断。
  • strncpy(dest,src,n) 指定复制的字符数量来进行字符串赋值或复制,特点是安全,不会溢出字符串边界。
  • strcat(dest,src) 字符串拼接,将src全部拼接到dest。拼接的过程中可能导致最终字符数超过dest的最大容量,出现溢出情况,这个时候多余的部分会复制到dest的相邻其他内存区,这样是不安全的。
  • strncat(dest,src,n) 指定拼接src中n个字符到dest尾部。其中n必须保证最后拼接的字符数量不超过dest的最大容量。
  • strcmp(s1,s2) 字符串比较,特点比较的是整个字符串。
  • strncmp(s1,s2,n) n表示比较的字符数量,也可以理解为字符比较的结束位置。
// strcpy 简单实现
char *strcpy1(char *dest, const char *src)
{
   
    char *p = dest;
    // dest++这个操作存在溢出风险
    while (*dest++ = *src++);
    return p;
}
// strncpy 简单实现
char *strncpy1(char *dest, const char *src, size_t n)
{
   
    size_t count = 0;
    char *p = dest;
    while (count < n)
    {
   
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值