2018-2-21 test22

模拟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;  
}  

猜你喜欢

转载自blog.csdn.net/ferlan/article/details/79343083