/*
* 按照你给的截图修正了下,看看是不是你要的
*/
#include
#include
using namespace std;
const int MAXSTRLENGTH=99999;//字符串最大长度
/*
***************字符串处理函数的声明*************
*/
int mystrlen(char* s1);
void mystrcpy(char* s2,char* s1);
void mystrcat(char* s1,char* s2);
void mystrcut(char* s1,char* strsub,int m,int len);
void mysort(char* s1);
/*
*********************main函数********************
*/
void main(void)
{
char* s1=new char[MAXSTRLENGTH];
char* substr=new char[0];
substr[0]='\0';
int flg=-1;
cout<
gets(s1);
char* s2=new char[mystrlen(s1)+1];
s2[0]='\0';
while(flg!=0)
{
cout<
cout<
<
cin>>flg;
switch(flg)
{
case 0:exit(0);//退出
case 1:
mystrcpy(s2,s1);
cout<
break;
case 2:
mystrcat(s1,s2);
cout<
break;
case 3:
cout<
break;
case 4:
cout<
int m,len;
cin>>m>>len;
mystrcut(s1,substr,m,len);
cout<
break;
case 5:
mysort(s1);
cout<
break;
default:cerr<
}
cout<
}
}
/*
************字符串处理的函数实现*****************
*/
int mystrlen(char* s1)//字符串长度
{
int i=0;
while(true)
{
if(s1[i]=='\0')
i++;
}
return i;
}
void mystrcpy(char* s2,char* s1)//字符串拷贝
{
unsigned int i=0;
unsigned int len=mystrlen(s1);
for(;i
{
s2[i]=s1[i];
}
s2[i]='\0';
}
void mystrcat(char* s1,char* s2)//字符串连接
{
int l1=mystrlen(s1);
int l2=mystrlen(s2);
int i=0;
for(;i
{
s1[l1]=s2[i];
}
s1[l1]='\0';
}
void mystrcut(char* s1,char* strsub,int m,int len)//字符串截取
{
if( (m+len) > mystrlen(s1) )
{
cerr<
return;
}
int j=0;
for(int i=m;i
{
strsub[j]=s1[i];
}
strsub[len]='\0';
}
void mysort(char* s1)//字符串排序
{
int n=mystrlen(s1);
char tmp;
for(int i=0;i
{
for(int j=i+1;j
{
if(s1[i]>s1[j])
{
tmp=s1[i];
s1[i]=s1[j];
s1[j]=tmp;
}
}
}
}