C语言中strcpy函数的理解
来源:互联网 发布:php程序域名授权系统 编辑:程序博客网 时间:2024/04/29 20:37
strcpy原型
原型声明:char strcpy(char dest, const char *src);
头文件:string.h 和 stdio.h
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
strcpy的理解
当dest的空间不足以容纳src的字符串时,内部是怎样的?
假定源字符串(str)的大小为6个字节,完全复制需要7个字节;现在的目的字符串(str1)的大小为5个字节。
经过strcpy函数复制之后,str1与str相同。
一段测试代码: 1 #include <stdio.h>
2 #include <string.h>
3 int main(){
4 char *str = "123456";
5
6 char str1[5];
7 strcpy(str1, str);
8 printf("str1 = %s\n",str1);
9 printf("size(%s) = %lu\n",str1,strlen(str1));
10
11 char *ptr = &str1[4];
12 printf("*ptr = %c\n",*ptr);
13 printf("*(ptr+1) = %c\n",*(ptr+1));
14 printf("*(ptr+2) = %c\n",*(ptr+2));
15 return 0;
16 }
执行结果如下:
str1 = 123456
size(123456) = 6
str1[4] = *ptr = 5
*(ptr+1) = 6
*(ptr+2) =
strcpy总结
1、dest的大小至少为2即可。
2、不需要>=src的大小+1。
3、但是会存在漏洞,即会覆盖内存区域的值。
- C语言中strcpy函数的理解
- C语言中函数strcpy ,strncpy ,strlcpy的用法
- C语言中函数strcpy ,strncpy ,strlcpy的用法
- C语言中函数strcpy ,strncpy ,strlcpy的用法
- C语言中函数strcpy ,strncpy ,strlcpy的用法
- C语言中函数strcpy ,strncpy ,strlcpy的用法
- C语言中函数strcpy ,strncpy ,strlcpy的用法
- C语言中函数strcpy ,strncpy ,strlcpy的用法
- C语言中函数strcpy ,strncpy ,strlcpy的用法
- 实现C语言中strcpy函数
- C语言strcpy函数
- C语言strcpy()函数
- c语言strcpy函数的漏洞
- 【C语言】strcpy函数的实现
- C语言的strcpy()和strncpy()函数
- strcpy函数的理解
- C语言中getchar()函数的理解
- C语言中getchar()函数的理解
- 计算机网络
- Go语言并发与并行学习笔记(三)
- android textView实现长按复制
- Linq 联合查询条件快捷拼接方法
- input 只允许输入数字 及长度控制
- C语言中strcpy函数的理解
- 芯片价格及规格查询网
- 数据库的第三范式
- Java语言基础——数组
- 7月4号
- Redis的安装与使用(单节点)
- JDK
- 有趣的JavaScript原生数组函数
- ThreadLocal工作机制-基于安卓sdk 25