MyStrlen, MyStrcmp, MyReverse,MyStrcpy,MyStrncpy,Merge,Change
来源:互联网 发布:李善姬在韩国地位知乎 编辑:程序博客网 时间:2024/04/29 08:59
#include <iostream>#include <cstring>#include <cassert>using namespace std;int MyStrlen(char* a) //strlen(a){ int i=0; while(a[i]!='\0') { i++; } return i;}int MyStrcmp(char* s, char* t){ assert(s!=NULL); assert(t!=NULL); while(*s && *t && (*s==*t)) { s++; t++; } if(*s>*t) { return 1; } else if(*s<*t) { return -1; } else { return 0; }}void MyReverse(char* a) //头尾交换{ int size= MyStrlen(a); // strlen(a); for(int i=0; i<size/2; i++) { char temp=a[i]; a[i]=a[size-1-i]; a[size-1-i]=temp; }}char* MyStrcpy(char* dest, char* src){ assert(dest!=NULL); assert(src!=NULL); int i=0; for(; src[i]!='\0'; i++) { dest[i]=src[i]; } dest[i]='\000'; return dest;}char* MyStrncpy(char*dest, char* src, int pos){ assert(dest!=NULL); assert(src!=NULL); int SizeSrc=MyStrlen(src); if(SizeSrc>=pos) { int i=0; for(; i<pos; i++) { dest[i] =src[i]; } return dest; } else { int i=0; for(;i<SizeSrc; i++) { dest[i]=src[i]; } //dest[i]='\0'; return dest; }}char* Merge(char* dest, char* src)//strcat{ int i=0; int j=0; while(dest[i] !='\0') { i++; } while(src[j] !='\0') { dest[i] = src[j]; i++; j++; } dest[i]='\0'; return dest;}char* Change(char* a, int pos) // 指定位置前后对换位 pos=3 abc defg -> defg abc{ char* temp=new char[pos+1]; MyStrncpy(temp, a, pos); temp[pos]='\0'; MyStrncpy(a,a+pos,7-pos); MyStrncpy(a+7-pos,temp,pos); delete [] temp; return a;}int main(){ char a[]="abcdefg"; cout<<"size of the char a[]: "; cout<<MyStrlen(a)<<endl; cout<<"Initial char a[]: "; cout<<a<<endl; MyReverse(a); cout<<"after reverse char a[]: "; cout<<a<<endl; cout<<"after shabi dadong: "; cout<<Change(a,4)<<endl; return 0;}
1 0
- MyStrlen, MyStrcmp, MyReverse,MyStrcpy,MyStrncpy,Merge,Change
- mystrlen, mystrcpy, mystrcat, mystrcmp, mystrchr, mystrstr 实现.
- mystr函数 mystrcpy mystrncmp mystrtok mystrlen
- myStrncpy
- myStrcmp
- myStrlen
- 编写自己的的MyStrlen/MyStrcpy函数,字符数组和指针
- myStrcpy
- MyStrcpy
- Merge change requests
- sap Merge change requests
- mystrcpy.c
- 20160224 mystrcpy
- innodb之change buffer主动merge
- innodb之change buffer被动merge
- 自定义比较函数mystrcmp
- strlen和mystrlen
- change
- C++继承与转换
- 【前端】基于Bootstrap3的CSS3价格表(精美代码版)
- Android开发
- 8.python数据结构-列表-基本操作
- Makefile中的wildcard,notdir,patsubst用法
- MyStrlen, MyStrcmp, MyReverse,MyStrcpy,MyStrncpy,Merge,Change
- CentOS设置程序开机启动
- 配置Hibernate遇到的问题
- Android自定义控件之自定义ViewGroup实现标签云
- 仿饿了么加入购物车旋转控件
- a+b 高精度
- 使用版本控制工具SVN的项目中各种小图标所代表的具体含义
- APACHE内外网链接
- Java枚举类型详解(原理+用法)