strcat()与strcpy()用法
2024-08-31 21:02:59
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大。
最新文章
- Visual Studio:error MSB8020(搬运)
- 单据UI界面设计开发
- IOS中十六进制的颜色转换为UIColor
- rpc框架: thrift/avro/protobuf 之maven插件生成java类
- LoadRunner录制图片验证码
- JavaScript语法(一)
- 删除Android自带软件方法及adb remount 失败解决方案
- 解决nginx 504 Gateway Time-out的一些方法
- 破解 Adobe 系列的最佳方法,手把手教
- vijos1056题解
- 高性能、高可用、高扩展ERP系统架构设计
- linux 下安装php curl扩展
- shell test和find命令实例解析
- struts校验
- c/c++ 哈希表 hashtable
- Spring框架基本代码
- js中定时器相关
- spring MVC、mybatis配置读写分离,ReplicationDriver(转载)
- ibatitsnet 因为会Dao.config 配置数据版本太低导致的问题
- 深入理解MyBatis的原理:整个体系