天天看點

模拟實作strncat( )函數

代碼實作(環境:Visual Studio 2017)
//1.模拟實作strncat

#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <assert.h>

#pragma warning( disable : 4996) 

char * My_strncat(char * dest, const char *src, size_t n)
{
    assert(dest);
    assert(src);

    char *ret = dest;
    while (*dest)
    {
        dest++;
    }
    while (n--)
    {
        *dest++ = *src++;
    }
    *dest = '\0';
    return ret;
}

int main()
{
    char str1_0[] = "123456789";
    char str1_1[] = "123456789";
    char str2[] = "abcde";

    printf("調用strncat之前: str1_0: %s \n", str1_0);
    strncat(str1_0, str2, ); //調用系統strncpy
    printf("調用strncat之後: str1_0: %s \n", str1_0);

    printf("調用My_strncat之前: str1_1: %s \n", str1_1);
    My_strncat(str1_1, str2, ); //調用My_strncpy
    printf("調用My_strncat之後: str1_1: %s \n", str1_1);

    system("pause");
    return ;
}
           

繼續閱讀