#include <bits/stdc++.h>//全能头文件
using namespace std;
int main()
{
string str;
getline(cin, str);
for (int i = 0; i<str.length(); i++){
if (str[i] == '6'){
int j = 1;
for (; i + j<str.length() && str[i + j] == '6'; j++);
if (j>9)str.replace(i, j, "27");//i为开始位置,j为替换长度
else if (j>3)str.replace(i, j, "9");
}
}
cout << str << endl;
return 0;
}
getline用法
C++ – getline()函数的用法说明,以及getline()函数作为while条件的问题,总结一下:
在C++中本质上有两种getline函数,
(称为第一种)一种在头文件中,是istream类的成员函数。
第一种: 在中的getline()函数有两种重载形式:
istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );
作用是: 从istream中读取至多n个字符(包含结束标记符)保存在s对应的数组中。即使还没读够n个字符,
如果遇到delim或 字数达到限制,则读取终止,delim都不会被保存进s对应的数组中。
(称为第二种)一种在头文件中,是普通函数。
第二种: 在中的getline函数有四种重载形式:
istream& getline (istream& is, string& str, char delim);
istream& getline (istream&& is, string& str, char delim);
istream& getline (istream& is, string& str);
istream& getline (istream&& is, string& str);
用法和上第一种类似,但是读取的istream是作为参数is传进函数的。读取的字符串保存在string类型的str中。
函数的变量:
is :表示一个输入流,例如cin。
str :string类型的引用,用来存储输入流中的流信息。
delim :char类型的变量,所设置的截断字符;在不自定义设置的情况下,遇到’\n’,则终止输入。
replace函数在中
str.replace(i, j, “27”);//i为开始位置,j为替换长度
新字符或字符串替换原来的字符或者字符串