ybt 2046:【例5.15】替换字母
由于NOIP官方开始使用C++14编译器,C语言中用于读取带空格字符串的gets()函数已经不可以再用了。作为替代,有以下方法。
cin.getline()函数。
函数格式:
cin.getline(字符数组名, 最大读入字符数)
作用:读入一行带空格的字符串
由于最大读入字符数中包含了’\0’,因此真正允许读入的字符数会比这个数字少1
一般将这个参数填为数组的长度即可。
例: cin.getline(s, 100);
最多能读入99个字符保存到字符数组s
如果使用string类,可以使用getline()函数读入带空格的字符串
getline(cin, string类对象)
#include
using namespace std;
int main()
{
char s[205], a, b;
cin.getline(s, 205);//读入带空格的字符串,最多可以读入204个字符
cin >> a >> b;
int len = strlen(s);
for(int i = 0; i < len; ++i)
{
if(s[i] == a)
s[i] = b;
}
cout << s;
return 0;
}
#include
using namespace std;
int main()
{
string s;
char a, b;
getline(cin, s);
cin >> a >> b;
for(int i = 0; i < s.length(); ++i)
{
if(s[i] == a)
s[i] = b;
}
cout << s;
return 0;
}
#include
using namespace std;
int main()
{
char s[205], c1, c2;
cin.getline(s, 205);
cin >> c1 >> c2;
int len = strlen(s);
for(int i = 0; i < len; i++)
{
if(s[i] == c1)
cout << c2;
else
cout << s[i];
}
cout << endl;
return 0;
}
#include
using namespace std;
int main()
{
char c1,c2;
string s;
getline(cin, s);
cin >> c1 >> c2;
for(int i = 0;i < s.size();i++)
{
if(s[i] == c1)
cout << c2;
else
cout << s[i];
}
cout << endl;
return 0;
}