求问这个程序怎么修改?case 0怎么返回功能菜单啊?
#include<iostream.h>
#include<assert.h>
#include<string.h>
class string
{public:
void show() //显示字符串
{
cout<<str<<endl;
}
int length() //求长度
{
return size;
}
string insert(char*s,int pos)//字符串插入
{
string temp;
temp.size=strlen(s)+size;
for(int i=0;i<pos;i++)
{
temp.str[i]=str[i];
}
for(int j=0;j<pos+strlen(s);j++)
{
temp.str[pos+j]=s[j];
}
for(int k=0;k<temp.size;k++)
temp.str[pos+strlen(s0=k]=str[pos+k];
string replace(char*s,char*p,char*t)//字符串替换
string::size_type pos=0;
string::size_type a=p.size();
string::size_type b=t.size();
while((pos=s.find(p,pos))!=string::npos)
s.erase(pos,a);
s.insert(pos,t);
pos+=b;
void Delete(char*ch[],int n)//字符串删除
int len = strlen(ch);//得到字符串的长度(自带函数在#include<string.h>中)
for(int i=0;i<len;i++)
if(i>=n)
ch[i-1]=ch[i];//把n-1后的前面字符全部替换为为后面的字符
char *str = ch;//用str拷贝ch
str[len-1] = '\0';//把最后一位变为字符串结束标志,因此导致内存泄漏,因为后面还有一个'/0'
ch = new char[len-1];//新开辟一块空间
for(int i;i<=len-1;i++)//把str"/0/0"第二个/0之前的字符全部拷贝到ch中
ch[i] = str[i];
delete char*str;//把之前的空间释放
int index(char *s, char *t)//字符串的查找
if (!s || !t) return -1;
char *p = strstr(s,t);
if (!p) return -1;
return p - s;
void Strcat(char*z)//字符串的连接
char*a;
a=new char[strlen(z)+length];
strcpy(a,str);
strcat(a,z);
str=a;
cout<<str<<endl;
int main()
{
while (a!=0)
{
cout<<"------------------------------------------------------------------------------"<<endl;
cout<<"请选择功能操作:"<<endl;
cout<<"1.生成字符串"<<endl;
cout<<"2.显示"<<endl;
cout<<"3.求字符串长度"<<endl;
cout<<"4.字符串插入"<<endl;
cout<<"5.字符串替换"<<endl;
cout<<"6.字符串删除"<<endl;
cout<<"7.字符串查找"<<endl;
cout<<"8.字符串的连接"<<endl;
cout<<"0.返回"<<endl;
cin>>a;
switch(a)
{
case 0:
case 1:cout<<"请输入字符串:"<<endl;
char*s1=nem char;
cin>>s1;
break;
case 2:cout<<"你输入的字符串为:"<<endl;
String s1;
s1.show();
break;
case 3:
cout<<"你输入的字符串长度为:"<<s1.length()<<endl;
break;
case 4:
cout<<"请输入插入位置:";
int pos;
cin>>pos;
cout<<"输入你想插入的字符串:";
char*s2=nem char;
cin>>s2;
string s1=s1.insert(st2.pos);
cout<<"新的字符串为:";
s1.show();
break;
case 5:
cout<<"请输入替换内容:";
char*s4=new char;
cin>>s4;
cout<<"请输入被替换部分:";
char*s5=nem char;
cin>>s5;
string s1=replace(s1,s5,s4);
cout<<"新的字符串为:";
s1.show();
break;
case 6:
cout<<"请输入你要删除的字符位数:";
cin>>a;
string s1=delete(s1,a);
cout<<"新的字符串为:";
s1.show();
break;
case 7:
cout<<"请输入要查找的字符串:";
char*s5=new char;
cin>>s5;
string s1=index(s1,s5);
cout<<"新的字符串为:";
s1.show();
break;
case 8:
cout<<"请输入另一个字符串:";
char*s6=new char;
cin>>s6;
s1=strcat(s1,s6);
cout<<"连接后的字符串为:";
s1.show();
break;
default:cout<<"操作错误!请输入正确序号!"<<endl;
}
};
return 0;
}
错误:233.cpp
D:\vc++\MyProjects\123\233.cpp(135) : error C2958: the left parenthesis '(' found at 'D:\vc++\MyProjects\123\233.cpp(27)' was not matched correctly
D:\vc++\MyProjects\123\233.cpp(139) : fatal error C1075: end of file found before the left brace '{' at 'D:\vc++\MyProjects\123\233.cpp(15)' was matched
执行 cl.exe 时出错.