分别实现strlen,strlen,strlen,strcmp,strstr,memcpy

分别实现strlen,strcpy,strcat,strcmp,strstr,memcpy


//1.实现strlen
//2.实现strcpy
//3.实现strcat
//4.实现strcmp
//5.实现strstr
//6.实现memcpy

//实现strlen(求字符串长度)
size_t Strlen(const char* str) //const确定参数的长度
{ //合法性校验
/if (str == NULL) {
return 0;
}
/
assert(str != NULL);//断言,表达式为真,运行;为假,程序终止
int i = 0;
while (str[i] != ‘\0’) {
++i;
}
return i;
}

//实现strcpy(复制字符串)
char* Strcpy(char* dest, const char* src) {
//合法性校验
assert(src != NULL);
assert(dest != NULL);
int i = 0;
for (;src[i]!=’\0’;++i){ //到\0结束
dest[i] = src[i];
}
dest[i] = ‘i\0’; //将\0复制给最后一个地址
return dest;
}

//实现strcat(字符拼接)
char* Strcat(char* dest, const char* src) {
assert(dest != NULL);
assert(src != NULL);
//1,找到dest的结束位置
int i = 0;
for (; dest[i] != ‘\0’; ++i);
//2,吧src拷贝到dest的结束位置
for (int j = 0; src[j] != ‘\0’; ++j, ++i) {
dest[i] = src[j];
}
dest[i] = ‘\0’; //将\0加入dest
return dest;
}

//实现strcmp(比较字符串的大小)
int Strcmp(const char* str1, const char* str2) {
assert(str1 != NULL);
assert(str2 != NULL);//合法性校验
while (*str1 != ‘\0’&&*str2 != ‘\0’) {
if (*str1 < *str2) {
return -1;
}
else if (*str1 > *str2) {
return 1;
}
else {
++str1;//如果相等,字符加一
++str2;
}
}
if (*str1 < *str2) {//重新进行比较
return -1;
}
else if (*str1 > *str2) {
return 1;
}else{
return 0;}
}

//实现strstr(判定是否存在包含关系)
char* strstr(const char* str1, const char* str2)
{
assert(str1 != NULL);
assert(str2 != NULL);
if (!str1 || !str2)
{
return str1;
}
/* 遍历src字符串 /
while (str1)
{
/
用来遍历子串 /
char
bp = str1;
char
sp = str2;
do
{
if (!*sp) /*到了sub的结束位置,返回src位置 */
return str1;
} while (*bp++ == *sp++);
str1++;
}
return NULL;
}

//实现memcpy(拷贝内存等,不包括\0)
void* Memcpy(void* dest, const void* src, size_t num) {
assert(dest != NULL);
assert(src != NULL);
char* pdest = (char*)dest;
const char* psrc = (const char*)src;
for (size_t i = 0; i < num; ++i) {
*pdest = *psrc;
++pdest;
++psrc;
}
return dest;
}

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值