题目要求
编写一个C语言程序模拟实现strcat函数。
(我们不妨先模拟实现一下strcat函数,然后再对照一下string.h库函数中strcat函数代码的实现,与大师肩并肩)。
算法分析
strcat函数功能:将两个字符串连接起来,最终返回连接后字符串的首地址。
strcat函数原型:char * strcat (char *桌子,const char * src);
我们清楚地了解了strcat函数功能和原型之后,就很容易分析出算法…
算法总结
第一步:将桌子指向的内容循环遍历至' \ 0的部分。
第二步:将src指向的内容循环拷贝给桌子,包括src后面的' \ 0”。
核心代码
//模拟实现strcat函数 char * my_strcat1 (char *桌子,const char * src) { 时间=char *, ret 桌子;//对接受到的两个指针进行断言 断言(桌子); 断言(src);//将桌子遍历至\ 0 而(* dest) { 桌子+ +; }//将src内容复制在dest之后 而(* src) { *桌子+ +,=,* src + +; }//在桌子后面追加\ 0 * dest =, ' \ 0 '; return 回收; }
完整测试代码
/* *本代码由高小调原创,版权归高小调博客所有, *作者:高小调 *日期:2016-8-7 *代码功能:模拟实现strcat函数 *集成开发环境:Microsoft Visual Studio 2010年, */# include# include # include //模拟实现strcat char * my_strcat1 (char *桌子,const char * src) { 时间=char *, ret 桌子;//对接受到的两个指针进行断言 断言(桌子); 断言(src);//将桌子遍历至\ 0 而(* dest) { 桌子+ +; }//将src内容复制在dest之后 而(* src) { *桌子+ +,=,* src + +; }//在桌子后面追加\ 0 * dest =, ' \ 0 '; return 回收; }//库函数中实现方法 char * my_strcat2 (char *桌子,const char * src) { 时间=char *, cp 桌子;//将桌子遍历至\ 0 而(* cp) { cp + +; }//将src内容复制在dest之后 而(* cp + +=* src + +) { ; } return 桌子; } int main () { char str1 [20],=,“Hello ”; char str2 [],=癎xd 博客!”; char * ret =, my_strcat1 (str1 str2); printf (" % s \ n ",随著; 系统(“暂停”); return 0; }
输出
- <李>
函数列表
李> <李>printf()函数功能,原型,用法和实例
李> <李>断言()宏功能,原型,用法和实例
李> <李>strcat()函数功能,原型,用法及实例
李>小调祝你一切安好。
本文由高小调博客原创!
原文地址:http://gaoxiaodiao.com/p/21.html
如欲转载,请注明出处!
PS:我在大二上学期,为了赚取瑜伽教练进修费用,周末在肯德基兼职打工时,生活节奏超快。
下午2半点从学校走,3点半上班,一直到晚12点上。学校关门了,坐个出租的车,去网吧×××。
(肯德基可以报销部分车费)。
当时我心想如果大学毕业以后,每天都是这样生活的话,这未来也太黑暗了吧!
在那段时间内,我一直认为,这应该就是大学中最黑暗的时光了吧!
再回顾下现在,每天早上6点起床去瑜伽馆。
下午5点下课后,火速赶往公交车站,因为6点还有编程课,晚上9点下课…
尽管现在比之前的兼职辛苦更多,但我很享受…
这就是也许传说中的成长吧!