strncmp, strncat, strncpy函数的定义与实现

来源:互联网 发布:sybase数据库有哪些 编辑:程序博客网 时间:2024/05/18 02:32

strncpy函数

函数的定义

  • 函数原型
    char *strncpy(char *dest, const char *src, int n)

    把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,
    并返回dest。

    即复制字符串

函数的实现

char* my_strncpy(char*dest, const char*src, int n){    assert(dest != NULL);//保证指针的安全性    assert(src != NULL);    char *p = dest;    while(n--)    {        *p++ = *src++;    }    *p = 0;    return dest; } 

strncat函数的实现

函数的定义

  • 函数原型
    char * strncat(char *dest, const char *src, size_t n);
    【参数说明】:dest指向目标字符串,src为指向源字符串。

    把src所指字符串的前n个字符添加到dest所指字符串的结尾处,并覆盖dest所指字符串结尾的’\0’,从而实现字符串的连接。

  • 注意
    src和dest所指内存区域不可以重叠,并且dest必须有足够的空间来容纳src的字符串。

函数的实现

char* my_strncat(char*dest, const char*src, int n) {    assert(dest != NULL);    assert(src != NULL);    char *p = dest;    while(*p)    {        p++;    }    while(n--)    {        *p++ = *src++;    }    *p = 0;    return dest; }

strncmp函数的实现

函数的定义

  • 函数原型
    int strncmp ( const char * str1, const char * str2, size_t n );

    这个函数用来比较s1和s2字符串的前maxlen个字符。如果两个字符串相等的话,strncmp将返回0。

    如果s1是s2的一个子串的话,s1小于s2。

    此外还有,函数 int strncmp (const char *s1, const char *s2, size_t size) 此函数与strcmp极为类似。不同之处是,strncmp函数是指定比较size个字符。也就是说,如果字符串s1与s2的前size个字符相同,函数返回值为0。

函数的实现

 int my_strncmp(const char*str1, const char*str2, size_t num) {    assert(str1 != NULL);    assert(str2 != NULL);    while(num--)    {        if(*str1 == *str2)        {            str1 ++;            str2 ++;          }         else         {            if((*str1-*str2)<0)            {                return -1;             }             else             {                return 1;             }         }     }     return 0; }
阅读全文
0 0
原创粉丝点击