文章目录
前言
小白写代码、勿喷
一、strcpy
//strcpy源码
char* StrCpy(char* s1,const char * s2) {
while (*s1++=*s2++) {
}
return s1;
}
二、strcat
//strcat源码
char* StrCat(char * s1,const char * s2) {
while (*++s1) {
}
while (*s2) {
*p++ = *s2++;
}
return s1;
}
三、strchr
//strchr源码
int StrChr(char * s1,char c) {
char* p = s1; //记录首地址
while (*s1) { //s1的内容不是'\0'进入循环,也就是没有到结尾就不结束
if (*s1++ == c) { //比较
return s1 - p; //找到的地址减去首地址,就是所在位置
}
}
return -1; //没找到返回-1
}
四、strcmp
int strcmp(const char* src, const char* dst)
{
int ret = 0;
while (!(ret = *(unsigned char*)src - *(unsigned char*)dst) && *dst) //两个字符串相减,一样得0并取反
{
++src;
++dst;
}
if (ret < 0)
ret = -1;
else if (ret > 0)
ret = 1;
return(ret);
}