Problem G: C语言实验——删除指定字符
Description
从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。
Input
第一行是一个字符串;第二行是一个字符。
Output
删除指定字符后的字符串。
Sample Input
sdf$$$sdf$$
$
Sample Output
sdfsdf
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
int main()
{
int n,i;
char str[500];
char c;
gets(str);
cin>>c;
n=strlen(str);
for(i=0; i<=n-1; i++)
{
if(str[i]!=c)
cout<<str[i];
}
cout<<endl;
return 0;
}
删除字符串中指定的字符,就是找到字符串中指定的字符,然后跳过不输出,对于这种题目,一般有两种解法,第一种是逐个字符的检查,不是要求删除的就输出,是要求删除的就不做处理;第二种是定义两个字符数组,第一个用来输入测试实例,然后逐个检查,是要求删除的不做处理,不是要求删除的按新的顺序赋值给第二个字符数组,全部检查完之后,把第二个字符串输出即可,现在,我们用第一种方法;
首先输入字符串(gets(str);)和指定删除的字符(cin>>c;);
然后求出字符串的长度(n=strlen(str);),在字符串的长度范围之内进行循环检查(for(i=0; i<=n-1; i++)),看是否是指定字符,如果不是(if(str[i]!=c)),就输出该字符(cout<<str[i];);
按照习惯,在所有字符都输出后,在最后,输出一个空行(cout<<endl;)!