作者:Jennifer
touString.h文件
#ifndef STRING_H_INCLUDED
#define STRING_H_INCLUDED
/*
1.初始化 cin方法和scanf方法读入字符串
2.尾部追加字符或字符串 用+就行
3.插入字符 输入插入前位置和字符
4.删除 删除某位置 某区间 全部删除
5.替换字符(串) 输入替换的起始位置,输入要替换多少个字符,输入替换为什么
6.搜索子串 输出返回第一个相等子串的初始位置
7.比较 比较两个字符串是否一模一样
8.反向排序 字符串反向输出
9.显示 输出字符串
10.退出
*/
#include <iostream>
#include <string>
#include <stdlib.h>
#include <algorithm>
using namespace std;
string s;
void menu()
{
cout<<" *********String用法********* "<<endl;
cout<<endl;
cout<<" 1.初始化 2.尾部追加字符或字符串"<<endl;
cout<<" 3.插入字符 4.删除 "<<endl;
cout<<" 5.替换字符(串) 6.搜索子串"<<endl;
cout<<" 7.比较 8.反向排序"<<endl;
cout<<" 9.显示 10.退出"<<endl;
}
void xianshi()
{
cout<<"当前字符串为"<<endl;
cout<<s<<endl;
}
void chushihua()
{
cout<<"请给字符串变量赋初值:"<<endl;
cin>>s;
xianshi();
}
void add()
{
cout<<"请输入想给字符串变量后添加的字符或字符串:"<<endl;
string sv;
cin>>sv;
s+=sv;
//s.append(sv);
xianshi();
}
void charu()
{
string::iterator it;
char sv;
int n;
cout<<"请输入想插入的位置(前插,且首字符位置为0):"<<endl;
cin>>n;
cout<<"请输入想插入的字符:"<<endl;
cin>>sv;
it = s.begin();
s.insert(it+n,sv);
xianshi();
}
void shanchu()
{
int i,j,from,to;
string::iterator it;
it = s.begin();
cout<<"1.清空整个字符串 2.清除某个位置的字符或字符串 3.清除某个区间的字符或字符串"<<endl;
cin>>i;
switch(i)
{
case 1:
{
s="";
xianshi();
break;
}
case 2:
{
cout<<"请输入想删除的位置(首字符位置为0):"<<endl;
cin>>j;
s.erase(it+j);
xianshi();
break;
}
case 3:
{
cout<<"请输入想删除的起始位置(首字符位置为0):"<<endl;
cin>>from;
cout<<"请输入想删除的结尾位置(首字符位置为0):"<<endl;
cin>>to;
if((from>0)&&(to<s.length())&&(from<=to))
s.erase(from,to);
else
cout<<"输入有误!"<<endl;
xianshi();
break;
}
default:
{
cout<<"输入有误!"<<endl;
break;
}
}
}
void tihuan()
{
int from,to;
string sv;
string::iterator it;
it = s.begin();
cout<<"请输入想替换的起始位置(首字符位置为0):"<<endl;
cin>>from;
cout<<"请输入想替换的长度(首字符位置为0):"<<endl;
cin>>to;
cout<<"请输入想替换的字符:"<<endl;
cin>>sv;
if((from>=0)&&(from+to<=s.length())&&(from<=to))
s.replace(from,to,sv);
else
cout<<"输入有误!"<<endl;
xianshi();
}
void sousuo()
{
string sv;
cout<<"请输入想查找的字符或字符串:"<<endl;
cin>>sv;
if(s.find(sv)!=4294967295)
cout<<sv<<"在字符串中的下标为"<<s.find(sv)<<endl;
else
cout<<"没有找到!"<<endl;
}
void bijiao()
{
string s1,s2;
cout<<"请输入想比较的字符或字符串1:"<<endl;
cin>>s1;
cout<<"请输入想比较的字符或字符串2:"<<endl;
cin>>s2;
if(s1.compare(s2)==1)
cout<<"第一次输入大于第二次输入"<<endl;
if(s1.compare(s2)==-1)
cout<<"第一次输入小于第二次输入"<<endl;
if(s1.compare(s2)==0)
cout<<"第一次输入等于第二次输入"<<endl;
}
void fanxiang()
{
reverse(s.begin(),s.end());
xianshi();
}
void tuichu()
{
exit(1);
}
#endif // STRING_H_INCLUDED
main.cpp
#include "multiset.h"
int main()
{
int i;
while(1)
{
menu();
cout<<"请输入想实现的菜单编号:"<<endl;
cin>>i;
switch(i)
{
case 1:
{
insert();
break;
}
case 2:
{
zhongxu();
break;
}
case 3:
{
fanxu();
break;
}
case 4:
{
shanchu();
break;
}
case 5:
{
index();
break;
}
case 6:
{
quit();
break;
}
default:
{
cout<<"输入有误!"<<endl;
break;
}
}
}
return 0;
}