模拟strncpy
#include<stdio.h>
#include<windows.h>
#include<assert.h>
void my_strncpy(char *arr, char *ch, int size)
{
assert(arr);
assert(ch);
while (size--)
{
*arr = *ch;
arr++;
ch++;
}
}
int main()
{
char arr[10] = { 0 };
char *ch = "helloworld";
my_strncpy(arr, ch, 6);
return 0;
}
模拟strncat
#include<stdio.h>
#include<windows.h>
#include<assert.h>
void my_strncat(char *p, char *q, int size)
{
assert(p);
assert(q);
while (*p)
{
p++;
}
while (size--)
{
*p = *q;
p++;
q++;
}
}
int main()
{
char p[20] = "hello";
char *q = "world1234";
my_strncat(p, q, 5);
return 0;
}
模拟strncmp
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
int my_strncmp(char* dest, const char* src,size_t count)
{
assert(dest);
assert(src);
while (count)
{
if (*dest == *src)
{
dest++;
src++;
}
else
{
return *dest - *src - '\0';
}
count--;
}
return 1;
}
int main()
{
char arr1[20] = "yello";
char arr2[] = "world!";
int ret = my_strncmp(arr1, arr2,2);
if (ret == 1)
{
printf("Match Success!\n");
}
else
{
printf("Match Failure!\n");
printf("%d", ret);
}
system("pause");
return 0;
}