C语言学习—字符串学习 (三) 补充
- 常见API:拷贝、拼接、对比的函数单独原理实现
- 断言Assert的应用:Assert() 内部结果为假,输出一条错误信息
- 字符串对比函数主要用来实现检测当前两字符串是否相同的目的,若前面大于后面是1;前面小于后面是-1;0时表征前后相等
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
char *strMycopy(char *des,char *src)
{
assert(des != NULL && src != NULL);
if(des == NULL ||src == NULL)
{
return NULL;
}
else
{
char *aim=des;
while(*src!='\0')
{
*des=*src;
des=des+1;
src=src+1;
}
*des='\0';
return aim;
}
}
char* strMycat(char *des,char *src)
{
char* aim =des;
while(*des!='\0')
{
des++;
}
while(*src!='\0')
{
*des=*src;
des++;
src++;
}
*des='\0';
return aim;
}
int strMYcmp(char* des,char* src)
{
int aim=0;
while(*des!='0'&& *src!='0' && *des==*src)
{
des++;
src++;
}
if ((*des-*src)>0)
{
aim=-1;
}
else if((*des-*src)<0)
{
aim=1;
}
return aim;
}
int main()
{
char Arry[128]={'a','\0'};
char *p="abcdefghijkmlo";
puts(Arry);
printf("%s\n",Arry);
strMycat(Arry,p);
puts(Arry);
strMycopy(Arry,p);
puts(Arry);
char *p1="abc";
char *p2="abc";
int ret=strMYcmp(p1,p2);
if (ret ==0)
{
puts("两个字符串一样!!!\n");
}
return 0;
}