每天学习一点string.h
来源:互联网 发布:好八字 知乎 编辑:程序博客网 时间:2024/05/24 20:08
面试中总会遇到实现类似strcpy,strlen功能的程序,所以需要注意积累,每天学习一个函数!
第一天,strcpy:
方案一:
char* MyStrcpy(char* strDes, const char* strSrc){assert((strDes != NULL) && (strSrc != NULL));char* Restr = strDes; //返回strDes支持链式表达式while((*strDes++ = *strSrc++) != '\0');return Restr;}
方案二:
char* MyStrcpy(char* strDes, const char* strSrc){assert((strDes != NULL) && (strSrc != NULL));char* Restr = strDes;int i = 0;for(i = 0; strSrc[i] != '\0'; i++){strDes[i] = strSrc[i];}strDes[i] = '\0';return Restr;}总结:1、源字符串是const限定的; 2、返回的是strDes,为了支持链式表达式:strlen(strcpy(a, b)); 3、注意判断两个字符指针是否为空; 4、记住字符串结尾一定要加'\0'。
明天继续,要持之以恒,加油!
2014.05.10
第二天,strcat函数
char* MyStrcat(char* strDes, const char* strSrc){assert((strDes != NULL) && (strSrc != NULL));char* ReStr = strDes;while(*strDes)++strDes;while((*strDes++ = *strSrc++) != '\0');return ReStr;}
2014.05.11
第三天,strlen函数
自己先写了个低端的:
unsigned int MyStrlen(const char* strSrc){assert(strSrc != NULL);unsigned int count = 0;while(*strSrc++)++count;return count;}
然后看到一种面试填空题:
int strlen(char * str)
{
}
哎呀,怎么不能使用中间变量,好吧,这只能是用递归了:
unsigned int MyStrlen(const char* strSrc){assert(strSrc != NULL);if(*strSrc == '\0')return 0;elsereturn(MyStrlen(++strSrc) + 1);}
unsigned int MyStrlen(const char* strSrc){assert(strSrc != NULL);const char* _first = strSrc;while(*strSrc++);return(strSrc - _first - 1);}
0 0
- 每天学习一点string.h
- 每天学习一点,进步一点!
- 英语学习每天一点
- 每天学习记录一点
- 每天学习一个知识点,每天进步一点
- 每天进步一点--学习 lslpp
- 每天坚持学习一点C~~~
- 每天一点java学习-start
- 每天学习一点C++之一
- 每天学习一点新东西
- 每天多学习一点,再多学习一点
- 每天学习一点——Android
- Struts2学习(每天一点进步)
- string、string.h和ctring学习小结
- 每天学习flash一点(3) flash外部读取xml
- 每天学一点flash(60) Dictionary类学习笔记
- 每天一点Verilog,《高级FPGA设计》学习笔记:综合编码
- 我在学习yii每天留下一点心得
- Storyboard里面的几种Segue区别及视图的切换:push,modal,popover,replace和custom
- android的基础学习
- PHP基础加强(第六天)
- LeetCode--Reverse Integer
- 【剑指offer】二进制中1的个数
- 每天学习一点string.h
- hdu1018
- Android 网络编程 API笔记 - java.net 包相关 接口 api
- 基于C++的串口通讯//使用MsComm控件//SetRThreshold()函数的使用,根据数据数量触发端口
- HUD1711
- JDK1.7.0_51使用javah工具生成.h声明文件的环境配置
- Python中dict的排序方法(按key或按value)
- 跑腿兔(TaskRabbit)是一个跑腿网站
- 使用 LINQ to XML