c语言字符串复制函数strcpy

阅读: 评论:0

2024年2月5日发(作者:)

c语言字符串复制函数strcpy

C语言字符串复制函数strcpy()的编写与详解

strcpy,即string copy(字符串复制)的缩写。

原型声明:char *strcpy(char *dest, const char *src);

头文件:#include 和 #include

功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针(返回类型char*)。

不使用C/C++标准库函数,进行字符串复制函数的编写:

#include #include #include

void stringcpy(char* to, const char* from) {

assert(to != NULL && from != NULL);

while (*from != '0') {

*to++ = *from++;

}

*to = '0';}

int main(void) {

char* t = (char*)malloc(15);

char* f = (char*)malloc(15);

stringcpy(f, "abcdefg");

stringcpy(t, f);

printf("%sn", t);

printf("%cn", t[0]);

free(t);

free(f);

getchar();

return 0;}

运行结果:

详解:

① assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行。

② *to++ = *from++先赋值再各自自增。

*p++先执行++再执行*,分三步(*和++都是同级运算符,右结合)

(1)先执行p++,因为是后置,先用p;

(2)再执行 *p, 取p所指的内容;

(3)最后再让p++,让p的地址加一个单位。

注意:++*p和(*p)++都是取p所指对象的值加1。

③ *to = '0'补上结束符,否则会乱码,如图。

④ char* t = (char*)malloc(15)使用 malloc 向堆动态申请内存;由于 malloc 返回类型为(void*),故用(char*)转换类型;char 为字符型变量,占1字节,此处申请了15字节的内存空间。

注意:若已不再使用,需要用 free 手动释放由 malloc 申请的内存,防止内存泄漏。

⑤ sizeof(t)的结果为4,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位),对于32位编译器,char*占4字节。

⑥ strlen(t)的结果为7,strlen() 截取'0'之前的字符串长度,其头文件为

⑦ getchar()类似于C++中的system("pause"),用于生成运行结果后暂停,方便查看结果,否则运行窗口会一闪而过,输入回车后即可关闭窗口。

c语言字符串复制函数strcpy

本文发布于:2024-02-05 15:35:39,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170711853957377.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:mystrcpy函数
下一篇:strcpy_s用法
标签:字符串   函数   内存   返回   复制   所指
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23