几个 str 库函数源代码

本文详细介绍了几个常用的C语言字符串操作函数的实现方法,包括字符串连接、拷贝、比较等核心功能。通过这些示例代码,读者可以深入理解字符串处理背后的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>

#include<assert.h>

char *my_strcat(char *dst,const char *src)

{

char *cp = dst;

assert(dst);

assert(src);

while(*cp)

{

cp++;

}

while(*cp++ = *src++)

{

;

}

return dst;

}

char strncat(char *front,const char *back,int  count)

{

char *start = front;

assert(front);

assert(back);

while(*front)

{

front++;

}

while(count--)

{

if(!(*front++ = *back++))//判断是否到back的末尾!

{                        //当遇到0就返回的就在条件前面加"!"

return start;

}

}

*front = '\0';

return start;

}

int strcmp(const char *src,const char *dst)

{

int ret = 0;

assert(src);

assert(dst);

while(!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)

{

src++;

dst++;

}

return ret;

}

int strncmp(const char *first,const char *last,int count)//compare first n characters of two strings

{

assert(first);

assert(last);

if(!count)

{

return 0;

}

while(--count && *first && *first == *last)

{

first++;

last++;

}

return (*(unsigned char *)first - *(unsigned char *)last);

}

int strlen(const char *str)

{

const char *eos = str;

assert(str);

while(*eos++)

{

;

}

return ((int)(eos - str - 1));//指针减指针为它们之间的元素个数

}

char * strncpy(char *dst,const char *src,int count)

{

char *start = dst;

assert(dst);

assert(src);

while(count-- && (*dst = *src))

{

;

}

if(count)

{

while(--count)

{

*dest++ = '\0';

}

}

return start;

}

char *strcpy(char *dst,const char *src)

{

char *start = dst;

assert(dst);

assert(src);

while(*dst++ = *src++)

{

;

}

return start;

}










本文转自 ye小灰灰  51CTO博客,原文链接:http://blog.51cto.com/10704527/1708936,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值