后面的题目都比较简单啦,但是博主强迫症发作,想都刷完,也可以给之后刷题的同学一些参照。上一篇字符串匹配时没有用KMP算法,下次单独写一篇记录KMP算法,继续刷接下来五道字符串的题目。
问题 E: 字符串去特定字符
时间限制: 1 Sec 内存限制: 32 MB
题目描述
输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。
输入
测试数据有多组,每组输入字符串s和字符c。
输出
对于每组输入,输出去除c字符后的结果。
样例输入
goaod
a
样例输出
good
解题思路
这道题主要是要解决输入问题。字符数组的输入输出主要有三种方式:
(1)scanf输入,printf输出
(2)getchar输入,putchar输出
使用getchar输入字符后,一定要再加一句getchar()来把输入中每行末尾的换行符吸收掉。
(3)gets输入,puts输出
gets用来输入一行字符串,gets识别换行符\n作为输入结束,因此scanf完一个整数后,如果要使用gets,需要先用getchar接收整数后的换行符,并将其存放于一维数组中,puts用来输出一行字符串,即将一维数组在界面上输出,并紧跟一个换行。
Submission
#include<stdio.h>
#include<string.h>
int main()
{
char str[10000];
char sub;
int i,j;
while(gets(str))
{
char ans[10000]={0};
j=0;
sub=getchar();
getchar();//这句是为了把输入中每行末尾的换行符吸收掉
for(i=0;i<strlen(str);i++)
{
if(sub!=str[i]){
ans[j]=str[i];
j++;
}
else{
continue;
}
}