C语言::模拟实现strcat函数

来源:互联网 发布:软件设计师 考试 编辑:程序博客网 时间:2024/05/16 12:56

题目要求

编写一个C语言程序模拟实现strcat函数.

(我们不妨先模拟实现一下strcat函数,然后再对照一下string.h库函数中strcat函数代码的实现,与大师肩并肩.)

算法分析

strcat函数功能:将两个字符串连接起来,最终返回连接后字符串的首地址.

strcat函数原型:char *strcat(char *dest,const char *src);

我们清楚地了解了strcat函数功能和原型之后,就很容易分析出算法...

算法总结

第一步:将dest指向的内容循环遍历至'\0'的部分.

第二步:将src指向的内容循环拷贝给dest,包括src后面的'\0'.

核心代码

//模拟实现strcat函数char *my_strcat1(char *dest,const char *src){char * ret = dest;//对接受到的两个指针进行断言assert(dest);assert(src);//将dest遍历至\0while(*dest){dest++;}//将src内容复制在dest之后while(*src){*dest++ = *src++;}//在dest后面追加\0*dest = '\0';return ret;}

完整测试代码

/**本代码由高小调原创,版权归高小调博客所有 *作者:高小调*日期:2016-8-7*代码功能:模拟实现strcat函数*集成开发环境:Microsoft Visual Studio 2010 */#include<stdio.h>#include<stdlib.h>#include<assert.h>//模拟实现strcatchar *my_strcat1(char *dest,const char *src){char * ret = dest;//对接受到的两个指针进行断言assert(dest);assert(src);//将dest遍历至\0while(*dest){dest++;}//将src内容复制在dest之后while(*src){*dest++ = *src++;}//在dest后面追加\0*dest = '\0';return ret;}//库函数中实现方法char *my_strcat2(char *dest,const char *src){char * cp = dest;//将dest遍历至\0while(*cp){cp++;}//将src内容复制在dest之后while(*cp++=*src++){;}return dest;}int main(){char str1[20] = "Hello ";char str2[] ="Gxd Blog!";char *ret = my_strcat1(str1,str2);printf("%s\n",ret);system("pause");return 0;}

输出

模拟实现strcat函数输出结果

    函数列表
  1. printf()函数功能、原型、用法和实例
  2. assert()宏功能、原型、用法和实例
  3. strcat()函数功能、原型、用法及实例

小调祝你一切安好.

本文由高小调博客原创!

原文地址:http://gaoxiaodiao.com/p/21.html

如欲转载,请注明出处!

PS:我在大二上学期,为了赚取瑜伽教练进修费用,周末在KFC兼职打工时,生活节奏超快.

下午2半点从学校走,3点半上班,一直到晚上12点.学校关门了,坐个出租车,去网吧包夜.

(KFC可以报销部分车费.)

当时我心想如果大学毕业以后,每天都是这样生活的话,这未来也太黑暗了吧!

在那段时间内,我一直认为,这应该就是大学中最黑暗的时光了吧!

再回顾下现在,每天早上6点起床去瑜伽馆.

下午5点下课后,火速赶往公交车站,因为6点还有编程课,晚上9点下课...

尽管现在比之前的兼职辛苦更多,但我很享受...

这就是也许传说中的成长吧!

0 0
原创粉丝点击