strcat,strcmp,strcpy函数内部实现

本文介绍了C++中用于字符串操作的三个关键函数:mystrcpy用于复制字符串,mystrcat用于连接字符串,mystrcmp用于比较字符串。每个函数的内部实现细节包括内存检查、字符遍历以及终止条件的判断。此外,还提供了mystrncpy1函数,它限制了复制的字符数,以及mystrlength函数,用于计算字符串长度。
摘要由CSDN通过智能技术生成
#include<iostream>
#include"test.h"
using namespace std;
//将src字符串复制到desc中
char* mystrcpy(char* desc, const char* src)
{
if (desc == NULL || src == NULL) //内存正常判断
{
return NULL;
}
char* str = desc;
while ( (*str = *src) != '\0')//‘\0'字符串结束标志
{
str++;
src++;
}
return desc;
}


//将src字符串连接到desc中
char* mystrcat(char* desc, const char* src)
{
if (desc == NULL || src == NULL)
{
return NULL;
}
char* str = desc;
while (*src++ != '\0'); // 第一步:找出目的字符串的结尾
src--;
while ((*desc++ = *src++) != '\0');//第二步:将源字符串添加到目的字符串
return str;
}


//将src字符串前n个字符复制到desc中
char* mystrncpy1(char* desc, const char* src, int n)
{
char* str = desc;
//前面应该有个目的内存是否不足判断
int m = 0;
while (*str != '\0')
{
str++;
m++;
}


if (desc == NULL || src == NULL || n>m ) //内存正常判断
{
return NULL;
}


while (n--)
{
*str++ = *src++;
}
return desc;
}


//比较两个字符串大小
int mystrcmp(const char* str1, const char* str2)
{
while (*str1 && *str2 && *str1 == *str2)
{
str1++;
str2++;
}
return *str1 - *str2;
}


//求出字符串str长度
int mystrlength(const char* src)
{
if (src == NULL)
{
return 0;
}


int n = 0;
while (*src++ != '\0')
{
n++;
}
return n;
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值