C++ strcpy与strncpy的注意事项
来源:互联网 发布:怎么使用淘宝直通车 编辑:程序博客网 时间:2024/06/05 06:21
1. strcpy()
strcpy的函数式为:strcpy(dst,src),因为char数组最后以’\0’为结尾,所以需要注意的是如果strlen(src)>strlen(dst)时,则最后的’\0’无法复制,则会导致出错,即dst的大小至少要等于src的大小,保证strcpy能复制最后的’\0’。
2. strncpy()
strncpy的函数式为:strcpy(dst,src,n),即将src的前n个字符复制给dst,如果dst本来就有内容,并且本次拷贝的字符中不包含’\0’,则内容会连在一起,举个栗子:
char dst[]="Hello world"; strncpy(dst,"AB",2);
输出的结果是ABllo world,对于strncpy要注意的是当n< strlen(src)时,同样会不能复制’\0’,如果n>strlen(src),则可以正确复制。同样这里也要这dst的大小于n的大小的关系。建议在初始化字符串数组时使用char str[]={0}。
总的来说,strcpy用来复制字符串,如果dst长度足够,其会拷贝最后的结尾符’\0’,而strncpy是用来拷贝字符的,只拷贝固定的字符个数,如果包含了’\0’则拷贝并在此结束,且需要dst大小足够用来存储,如果不包含’\0’,则不拷贝。
C++中Map如何通过key得到value:
iter = map.find(key); if(iter!=map.end()) { return iter->second; } return null;
字符数组转化成string类型:
char str[] = "test";string s(ch);string s = str;//string s; s=str;也可用于加法
将string类型转换为字符数组:
char buffer[5];string s("test");len = s.copy(buffer, 4);buffer[len] = '\0';
或者
char buffer[5];string s("test");strcpy(buf, str.c_str());//strncpy(buf, str.c_str(), 5);
阅读全文
0 0
- strncpy与strcpy的区别与注意事项
- C++ strcpy与strncpy的注意事项
- (C)strcpy ,strncpy与strlcpy
- strcpy()的注意事项以及strncpy()的用处
- strcpy与strncpy的区别
- strcpy与strncpy的区别
- strcpy与strncpy的区别
- Strcpy与strncpy的区别
- strcpy与strncpy的区别
- strcpy()与strncpy()的区别
- C语言strcpy,strncpy的用法
- C语言的strcpy()和strncpy()函数
- c strcpy strncpy
- strcpy与strncpy的安全版本
- memcpy与strcpy(strncpy)的惨痛经历
- strcpy函数与strncpy的区别
- strncpy 与 strcpy
- strcpy与strncpy函数
- poj3279 Fliptile 开关问题
- zdsoft screen recorder(屏幕录像工具)官方注册版V11.1.2下载 | screen recorder破解版含注册机
- NKOJ 3743 奶牛求幂 (启发式搜索)
- 【编译原理 01】
- C#调用C++编写的dll在IIS中报错,vs里面没有问题
- C++ strcpy与strncpy的注意事项
- Linux 创建新用户
- 1235: 会场安排问题(request maxnum )
- ride
- JAVA基础:SWING中JTextField限制只能输入数字
- python判断对象的类型(字典,列表,集合等)
- PAT Basic 1019
- Ijkplay视频播放简单快速集成
- Winform中datagridview控件使用