字符串复制函数strcpy的实现算法
来源:互联网 发布:软件原型设计 编辑:程序博客网 时间:2024/06/09 19:08
1,字符串复制,需要考虑三种情况:
- 目的字符串未被赋值,本身是个空串,源字符串存在。
- 目的字符串长度m大于或等于源字符串长度n,此时复制时,源字符串代替目的字符串前n个字符,目的字符串后m-n个字符扔被保留,不需要在结尾再补上字符串结束标志’\0',因为目的字符串的结束标志会被保留。
- 目的字符串长度m小于源字符串长度n,此时复制时,源字符串前m个字符相当于覆盖了目的字符串,后n-m个字符也要复制到目的字符串中,在实现的过程中,我们是以当前字符不等于字符串结束标志’0‘来循环复制的,有效字符复制结束后,还需要在结尾再补上‘\0'。这种情况的复制,和第一种复制的效果是一样的,都是源字符串覆盖目的字符串,只不过第一种情况目的字符串为空串。
2,代码如下:
#include "stdafx.h"#include<stdio.h>#include"global.h"#include <assert.h>#include<string.h>#include<malloc.h>#include<stdlib.h>char* springCopy(char*to,char*from){int i=0,j=0;assert(to!=NULL&&from!=NULL);while(*to!='\0'&&*from!='\0')*to++=*from++;if(*to=='\0')//如果源字符串长度大于目的字符串长度,则复制完后,需要在结尾加上字符串结束标志。{while(*from!='\0')*to++=*from++;*to='\0';}return to;}void main(){ char*f;char*t;f=(char*)malloc(20);if(f==NULL){printf("不能成功分配存储空间");exit(1);}t=(char*)malloc(20);if(t==NULL){printf("不能成功分配存储空间");exit(1);}printf("**********************************\n");printf(" 实现字符串复制函数strcpy \n");printf("**********************************\n");printf("请输入目的字符串A:\n");scanf("%s",f);printf("\n");printf("请输入源字符串B:\n");scanf("%s",t);printf("\n");springCopy(f,t);printf("输出从字符串B复制到字符串A中的结果:");printf("%s",f);printf("\n");printf("\n");}
3,运行结果示意图
0 0
- 字符串复制函数strcpy的实现算法
- 不用strcpy函数实现字符串复制功能
- c++实现字符串复制函数strcpy()
- 自己实现strcpy字符串复制函数
- 复制字符串strcpy()函数
- 重写strcpy 实现字符串的复制
- C语言 不使用strcpy 函数实现字符串复制功能
- 请写一个函数,实现类似的strcpy的字符串复制功能
- 复制字符串,实现strcpy功能
- 实现自己的字符串拷贝函数Strcpy
- 字符串函数strcpy,strcat,memcpy的实现
- 编写标准的字符串复制(strcpy)函数
- 编写标准的字符串复制(strcpy)函数
- 编写标准的字符串复制(strcpy)函数
- 编写标准的字符串复制(strcpy)函数
- 字符串的复制strcpy的使用以及自实现
- C语言strcpy()函数:复制字符串
- C语言strcpy()函数:复制字符串
- IOS_UI_Label
- PhotoView源码分析(3)
- 3Sum Closest
- 收藏的人工智能相关网站
- IOS_TextField,UIButton
- 字符串复制函数strcpy的实现算法
- u-boot2010.06的移植(1)——准备移植
- Android:使用fragment(碎片)—让你的应用更灵活(一)简单运用
- 加载上传图片,获取文件名、文件路径并保存到程序的文件夹中
- 数据结构 - 内存
- 漫谈C指针第五讲---声明指针常量
- 最大子数组乘积算法
- postgresql 可调试
- 国内一些热门的在线教育网站