系统函数C字符串的实现(5):strdup
2015-08-15 22:40
211 查看
strdup不需要分配内存空间,自动实现字符串的拷贝
char *mystrdup(char *str)
{
char*p = malloc(sizeof(char)*(strlen(str) + 1));
strcpy(p, str);//拷贝
return p;
}
/*函数名: strdup
功 能: 将串拷贝到新建的位置处
用 法: char *strdup(char *str);
*/
//strcpy的变形
void main()
{
char str[14] = "rocket-黑夜\n";
str[0] = 'R';
printf("str=%s\n\n",str);
char *p1 = NULL;
char *p2 = "calc";
p1 = mystrdup(p2);
printf("p1=%s p2=%s\n\n", p1, p2);
p1 = _strdup(str);
printf("p1=%s", p1);
free(p1);
system("pause");
}
char *mystrdup(char *str)
{
char*p = malloc(sizeof(char)*(strlen(str) + 1));
strcpy(p, str);//拷贝
return p;
}
/*函数名: strdup
功 能: 将串拷贝到新建的位置处
用 法: char *strdup(char *str);
*/
//strcpy的变形
void main()
{
char str[14] = "rocket-黑夜\n";
str[0] = 'R';
printf("str=%s\n\n",str);
char *p1 = NULL;
char *p2 = "calc";
p1 = mystrdup(p2);
printf("p1=%s p2=%s\n\n", p1, p2);
p1 = _strdup(str);
printf("p1=%s", p1);
free(p1);
system("pause");
}
相关文章推荐
- QT5中的信号与槽与C++ 11的function的配合
- 居中显示并旋转 android Button 里的属性drawableLeft
- iOS 播放音频的几种方法
- android开发 drawtext的开始坐标位置
- c语言-1
- leetcode 127: Word Ladder
- Linux学习笔记(22) Linux启动管理
- 九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题
- 辗转相除法和扩展欧几里得算法
- 自己实现网易新闻头条遇到的问题__坐标错误,上啦刷新下拉加载崩溃
- AndroidStudio中代码混淆以及打包操作
- RMQ区间求最值
- 使用Windows EFS进行文件加密
- 面向对象编程js
- TCP连接建立系列 — 客户端发送SYN段
- Apache POI Copy Cell
- HDU 2100Lovekey
- AndoridManifest InstallLocation 使用说明
- TCP连接建立系列 — 客户端发送SYN段
- 交叉编译ffmpeg到beaglebone balck