求问这个程序怎么修改?case 0怎么返回功能菜单啊?

liwotorie 2017-06-06 04:37:07
#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 时出错.
...全文
243 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zebra_zzh 2017-06-08
  • 打赏
  • 举报
回复
按照这种格式,menu单独一个函数显示 #include "stdafx.h" #include "List.h" #include <stdlib.h> #include <iostream> using namespace std; int Menu() { int num; cout << "********************" << endl; cout << "* 1 ADD *" << endl; cout << "* 2 DEL *" << endl; cout << "* 3 SEARCH *" << endl; cout << "* 4 SHOW *" << endl; cout << "* 5 EXIT *" << endl; cout << "********************" << endl; cout << "input the num:"; cin >> num; return num; } int _tmain(int argc, _TCHAR* argv[]) { List mylist; mylist.Readfile(); int num = Menu(); bool flags = 1; while (flags) { switch (num) { case 1: mylist.Add(); break; case 2: mylist.Del(); break; case 3: mylist.Search(); break; case 4: mylist.Showfile(); break; case 5: cout << "Bye.\n"; return 0; default: cout<<"没有该选项请重输!\n"; break; } cout << "请输入选项:\n"; cin >> num; } system("pause"); return 0; }

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧