模拟实现strncopy
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *mystrncopy(char *dest,const char *src,int n)
{
char *ret = dest;
while(n--)
{
*dest++ = *src++;
}
if(*dest != '\0')
{
*dest = '\0';
}
return ret;
}
int main()
{
char *arr = "abcde";
char arr1[6];
printf("%s\n",mystrncopy(arr1,arr,3));
return;
}
实现效果
模拟实现strncat
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *my_strncat( char *dest,const char *src,int n)
{
char *ret = dest;
while(*dest != '\0')
{
*dest++;
}
while(n--)
{
*dest++ = *src++;
}
if(*dest != '\0')
{
*dest = '\0';
}
return ret;
}
int main()
{
char *p = "abcd";
char arr[10] = "efg";
printf("%s\n",my_strncat(arr,p,3));
return;
}
实现效果
模拟实现strncmp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int my_strncmp(const char *str1,const char *str2,int n)
{
while(*str1 == *str2)
{
if(*str1 == '\0')
{
return 0;
}
*str1++;
*str2++;
}
if(*str1 > *str2)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
char *p = "abcd";
char *q = "abce";
int ret = my_strncmp(p,q,4);
printf("%d\n",ret);
return;
}
下面是实现效果