题目描述
补充说明:
若一开始对string str操作
可用其插入函数 str.insert()
string& insert(int pos, const char* s); //插入字符串
string& insert(int pos, const string& str); //插入字符串
string& insert(int pos, int n, char c); //在指定位置插入n个字符c
string& erase(int pos, int n = npos); //删除从Pos开始的n个字符
实例测试
#include <iostream>
using namespace std;
#include <string>
//字符串插入和删除
void test01()
{
string str = "hello";
str.insert(1, "***");
cout << str << endl;
str.erase(1, 3); //从1号位置开始3个字符
cout << str << endl;
}
int main() {
test01();
system("pause");
return 0;
}
若选择对单个字符的操作 最好用char数组
解题思路
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
//找最大字符
char fun(char str[])
{
char max=str[0];
//int j=0;
for(int i=0;i<strlen(str);i++)
{
if(str[i]>max)
{
max=str[i];
//j=i;
}
}
return max;
}
void insert(char str[],int j)//在j后处插入
{
for(int i=strlen(str);i>j;i--)
{
str[i+5]=str[i];
}
str[j+1]='(';
str[j+2]='m';
str[j+3]='a';
str[j+4]='x';
str[j+5]=')';
}
int main()
{
char str[1000];
while(cin>>str)
{
char a=fun(str);
for(int i=0;i<strlen(str);)
{
if(str[i]==a)
{
insert(str,i);
i+=5;//str长度增长了5
} else
i++;
}
for(int i=0;i<strlen(str);i++)
{
cout<<str[i];
}
cout<<endl;
}
return 0;
}