strdup ( ) 【C语言库函数源代码】

来源:互联网 发布:华为手机克隆软件 编辑:程序博客网 时间:2024/05/18 09:40

C语言库函数源代码】

【本程序在Dev C++ 4.9.9.2 下编译通过】

/*

   Allocates enough storage via malloc() for a copy of the string, copies the string into the new memory, and returns a pointer to it.

   复制字符串,返回指向被复制字符串的指针。所需空间由malloc()分配,且可以由free()释放。需要注意的是,在调用完这个函数后,一定要记得释放内存空间吆。

*/

#include <stdlib.h>

int my_strlen ( const char * str )

{

   const char *p = str;

    while( *p++ ) ;

    return( (int)(p - str - 1) );

}

char * my_strcpy(char * dst, const char * src)

{

   char * cp = dst;

   while( *cp++ = *src++ )  ;        

   return( dst );

}

char * my_strdup(const char *str)

{

   char *p;

   if (!str)

      return(NULL);

   if (p = malloc(my_strlen(str) + 1))

      return(my_strcpy(p,str));

   return(NULL);

}

int main()

{

   char *str = "ammana_babi";

   char *p;

   p = my_strdup("ammana_babi");

   puts(p);

   free(p);

   system("pause");

   return 0;

}

strdup ( ) 【C语言库函数源代码】 
原创粉丝点击