面试中必须会写的函数源码--------strcpy()与strlen()
来源:互联网 发布:青岛新思享网络骗局 编辑:程序博客网 时间:2024/06/06 20:32
1. C语言标准库函数—strcpy(),字符串拷贝
原型声明:extern char *strcpy(char *dest,const char *src);
头文件:string.h
功能:把从src地址开始且含有‘\0’结束符的字符串赋值到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。strcpy不处理内存域重叠和空间不足的异常,需要程序员在应用此函数时,自己保障。
char* strcpy(char* DestStr,constchar*SrcStr) //源字符串标明为const
{
assert(( DestStr != NULL)&&(SrcStr != NULL)); //使用断言
char* tempStr = DestStr;
if(DestStr == SrcStr)return DestStr; //自我复制
while((*(DestStr++) =*(SrcStr++)) !='\0')//先拷贝,后判断,这样就不用在拷贝完了后,再加一句
NULL; //*strDest = '\0'; -->即加一个结束符.因为字符串结束已拷贝了.
return tempStr; //返回目标地址,方便链式操作
}
函数的不安全性体现在两个方面:可能存在存在拷贝溢出的情况,可能引起覆盖问题。覆盖问题如下所示。对于SrcStr在前而DestStr在后,则这样就会拷贝前边把SrcStr后边的内容拷贝出错,从而不能完成正确拷贝。
2.strlen
int strlen(constchar *str)
{
int len = 0;
assert(str!= NULL);
while(*str++)
{
len++;
}
return len;
}
- 面试中必须会写的函数源码--------strcpy()与strlen()
- 面试中必须会写的函数源码--------atoi()与itoa()
- C语言面试必须会的几个字符串操作函数原型strcpy,strcmp,strlen,strcat
- 自写 strlen strcpy函数
- [转]写一个完美的strcpy / strlen 函数
- 转]写一个完美的strcpy / strlen 函数
- strcat()函数与strlen()函数与strcpy()的使用
- 面试中strcpy源码的判分标准
- 模拟实现strlen与strcpy函数
- strlen, strcpy, strcmp函数的实现
- strcpy函数的用法,strlen,sizeof区别
- strlen,strcpy,strcat,strcmp函数的实现
- strcpy 和strlen函数的模拟实现
- strlen,strcpy,mencpy函数的实现
- 面试实现!vs 并附上strcpy() 函数的源码
- strlen与strcpy函数实现的浅谈及辨析sizeof运算符与strlen函数的区别
- 0061 strcpy strcmp strcat strlen memcpy函数再写
- strcpy、strlen、strcmp函数
- 广州现场赛D题Signal Interference(计算几何)
- cmd.jsp 经典版
- 自定义Spring Security过滤器
- 堆和栈的区别
- Android------SQLite
- 面试中必须会写的函数源码--------strcpy()与strlen()
- 在Windows上调整SGA大小遭遇ORA-27100、ORA-27102错误的处理方法
- Js获取当前日期时间及其它操作
- Android-ViewPagerIndicator简单集成
- POJ1144 Network PASCAL代码
- SSH原理与运用
- linux中exit()和_exit区别
- oracle 序列
- cocos2dx 自动添加所有cpp文件到android.mk