strdup()函数

函数名: strdup

功  能: 将串拷贝到新建的位置处

用  法: char *strdup(char *str);

但是在vs /keil5  IDE 中的string.h未找到strdup 函数,所以在重新函数实现。

#include<iostream>
#include<stdio.h>
#include<assert.h>

char * my_strdup(char *src);
char *my_strdup(char *src)
{
    if(NULL == src)
    {
        return NULL;
    }
    char *p_src = NULL;
    p_src = src ;
    int count = 0 ;
    while(*p_src != '\0')
    {
         count++;
         p_src++;

    }
    char * new_addr  = (char *)malloc(sizeof(char)*(count+1));
    p_src = src;
    while(*p_src  != '\0')
    {
        *new_addr++ = *p_src++;

    }
    *new_addr = '\0';
    return (new_addr -(count));

}
int main()
{

    char src[] = "liusenlin";
    printf("之前地址:\n");
    printf("%p\n",src);
    char *result  = NULL;
    result = my_strdup(src);
    printf("字符串拷贝后地址:\n");
    printf(" %p\n",result);
    printf("%s\n",result);
    free(result);
    return 0;
}

运行结果:

之前地址: 
0018FF3C 
字符串拷贝后地址: 
005006D0 
liusenlin 
Press any key to continue

猜你喜欢

转载自blog.csdn.net/liudongdong19/article/details/81417031
今日推荐