算法笔记练习 3.6 字符串处理 问题 E: 字符串去特定字符

算法笔记练习 题解合集

题目链接

题目

题目描述
输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。

输入
测试数据有多组,每组输入字符串s和字符c。

输出
对于每组输入,输出去除c字符后的结果。

样例输入
goaod
a

样例输出
good

思路

用指针 ps 遍历字符串 s,若和 c 不等,输出字符。

细节:

  1. 注意各个输入函数之间的配合,例如本题用 gets 读入字符串后,输入缓冲区中字符串后面的换行已经被 gets 消耗掉了,可以直接用 scanf 读字符;但是 scanf 读完字符后记得处理紧跟的换行,否则会被下一轮的 gets 读到
  2. 本题没给数据范围,感觉略坑,但是AC之后测试了一下字符串 s 真的很小,长度 40 就能装下

代码

#include <stdio.h>
#define MAX 40
int main(){
	char s[MAX], c;
	while (gets(s)){
		scanf("%c", &c);
		getchar();  // 处理换行
		char *ps = s;
		while (*ps != '\0'){
			if (*ps != c)
				putchar(*ps); 
			++ps;
		}
		putchar('\n'); 
	} 
	return 0;
} 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值