从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。
输入格式:
第一行是一个字符串,不超过100个字符;
第二行是一个字符。
输出格式:
删除指定字符后的字符串。
输入样例:
在这里给出一组输入。例如:
sdf$$$sdf$$
$
输出样例:
在这里给出相应的输出。例如:
sdfsdf
#include<iostream>
#include<string>
using namespace std;
int main() {
string str;
char c;
cin >> str >> c;
for (unsigned i = 0; i < str.length(); i++) {
if (str[i] != c) {
cout<<str[i];
}
}
return 0;
}
部分通过编译
int main()
{
char str[100];
char c;
cin.getline(str, 100); //可接收空格
cin >> c;
for (size_t i = 0; str[i]; i++)
{
if (str[i] != c)
{
cout << str[i];
}
}
return 0;
}
你这样的操作并没有符合你自己的要求啊!你只是没有打印字符c,却并没有删除掉那个字符
正确的应该这么写
int main()
{
string s1;
char c;
cin >> s1;
cin >> c;
string::iterator it = s1.begin();
while (it != s1.end())
{
if (*it == c) {
s1.erase(it);
}
it++;
}
cout << s1 << endl;
return 0;
}
结果如下