编写一个函数,此函数使用动态存储分配来产生一个字符串的副本。例如函数为strclone,则调用p=strclone(str),将会为一个新的字符串分配和str占内存大小相同的一个字符串,并将字符串st

来源:互联网 发布:智博海天软件工程学院 编辑:程序博客网 时间:2024/05/14 00:00
#include <stdio.h>
#include <stdlib.h>


char* _strdup(const char *str) {
unsigned int length = strlen(str) + 1;
char* strNew = (char*) malloc(length);
if (strNew == NULL ) {
return NULL ;
}
if (*str != '\0') {
char* tmp = strNew;
while (*str != '\0') {
*strNew = *str;
strNew++;
str++;
}
*strNew = '\0';
return tmp;
} else {
return NULL ;
}
}
int main() {
char *str;
char *string = "hello world!";
str = _strdup(string);
printf("新字符串为:%s\n", str);
free(str);
str = NULL;
return 0;
}

原创粉丝点击