//strcpy的模拟实现
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char *dest,const char* src)
{
assert(dest!=NULL);
assert(src!=NULL);
while(*dest!='\0')
{
*dest=*src;
dest++;
src++;
}
return dest;
}
int main()
{
char arr[]="abcdef";
char arr1[]="hello";
my_strcpy(arr,arr1);
printf("%s\n",arr);
return 0;
}
//strcmp的模拟实现
#include<stdio.h>
#include<assert.h>
int my_strcmp(const char* str1,const char* str2)
{
assert(str1!=NULL);
assert(str2!=NULL);
while(*str1==*str2)
{
if(str1=='\0')
return 0;
else
{
str1++;
str2++;
}
}
return *str1-*str2;
}
int main()
{
char arr1[]="abcde";
char arr2[]="bcdef";
int ret=my_strcmp(arr1,arr2);
printf("%d\n",ret);
return 0;
}
//strcat的模拟实现
#include<stdio.h>
#include<assert.h>
char* my_strcat(char*dest,const char*src)
{
assert(dest!=NULL);
assert(src!=NULL);
while(*dest!='\0')
{
dest++;
}
while(*dest=='\0')
{
*dest=*src;
dest++;
src++;
}
return dest;
}
int main()
{
char arr[20]="hello";
char arr2[]=" world";
my_strcat(arr,arr2);
printf("%s\n",arr);
return 0;
}
//strstr的模拟实现
#include<stdio.h>
#include<assert.h>
char *my_strstr(const char*str1,const char *str2)
{
const char *s1=str1;
const char *s2=str2;
const char *p=s1;
assert(s1!=NULL);
assert(s2!=NULL);
while(*p!='\0')
{
s1=p;
s2=str2;
while(*s2==*s1)
{
s1++;
s2++;
}
if(*s2=='\0')
return (char*)p;
p++;
}
return NULL;
}
int main()
{
char arr1[]="abccde";
char arr2[]="cd";
char *ret=my_strstr(arr1,arr2);
if(ret==NULL)
{
printf("不存在");
}
else
{
printf("%s\n",ret);
}
return 0;
}
c语言--有关字符串函数strcpy,strcmp,strcat,strstr的模拟实现
最新推荐文章于 2022-09-09 17:20:34 发布