strcat()与strcpy()用法
2016-05-24 16:49
344 查看
1、strcpy
(1)原型
extern char *strcpy(char *dest,char *src);
(2)用法
#include <cstring>
(3)功能
把src所指由NULL结束的字符串复制到dest所指的数组中。(4)说明
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。
(5)举例
// strcpy.c #include #include main() { char *s="Golden Global View"; char d[20]; clrscr(); strcpy(d,s); //这里只需要指定指针s的首地址和数组d的首地址即可,原因在于strcpy原型函数中定义的就是 //把src所指由NULL结束的字符串复制到dest所指的数组中,因此我们不需要zhidingsrc的结束位置,只需要指定开始位置 printf("%s",d); getchar(); return 0; }
说明:
char s1[]="12345",*s2="1234"; printf("%d\n" ,strlen(strcpy(s1,s2)));
则输出结果是:4
注意:strcpy是源文件覆盖目标区域,而不是替换前面的字符。
2、strcat
(1)原型
extern char *strcat(char *dest,char *src);
(2)用法
#include <string.h>
(3)功能
把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。(4)说明
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。
(5)举例
// strcat.c #include <syslib.h> #include <string.h> main() { char d[20]="Golden Global"; char *s=" View"; clrscr(); strcat(d,s); printf("%s",d); getchar(); return 0; }
3、易错点
(1)代码Char *a=”abcd”; Char b[5]=”abcd”; Strcat(a,b); Char a[]=”abcd”; Char b[5]=”abcd”; Strcat(a,b); Char a[5]=”abcd”; Char b[5]=”abcd”; Strcat(a,b);
(2)分析
以上这3种方法都不能实现连接2个字符串,因为连接a,b之后字符串是存放在a中的,而以上3种方法所分配的a的内存大小都是放不下这2个字符串的,所以就会报错。
正确的方法如下:
Char a[50]=”abcd”; //确保a字符串分配的内存空间足够大 Char b[5]=”abcd”; Strcat(a,b); Char a[50]=”abcd”; Char *b=”abcd”; //对于第2个字符串的形式就没有太大的要求了 Strcat(a,b);
Strcpy(a,b)函数的注意点:同样的,a的内存空间必须比b大。
相关文章推荐
- Dave(正方形能围成的最大点数)
- Task三个列子的分享
- HTML 30分钟入门教程
- android之自定义View和ViewGroup(四)(代码篇,实现圆形进度条)
- Jenkins配置基于角色的项目权限管理
- 【BZOJ1243】[Seerc2007]Showstopper【二分】
- vehicle detection haarcascades
- Windows下wamp sever+sendmail使用mail()函数时的配置
- HTML常用标签
- apache禁止访问默认虚拟主机
- scala中的孤立对象实现原理
- 深入理解Java之泛型
- Hadoop与Spark整合
- Hp服务器 iLO3 使用方法
- post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get?
- android检测导航栏是否存在的方法
- 4、Git暂存区
- hdu5512Pagodas
- Service_原理详细解析
- 正则表达式和通配符的区别