C语言:字符串去特定字符
题目:
输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。
输入
测试数据有多组,每组输入字符串s和字符c。
输出
对于每组输入,输出去除c字符后的结果。
分析:
1. 可以选用多种思路:
(1)使用数组,在检测到字符c以后用数组s后面的字符依次往前移动覆盖。但需多花移动的时间(增加一个内层循环),且需要注意连续出现字符c 的情况;
(2)使用链表,检测到字符c时,只需将指针指向next->next即可;但在建立起链表的过程中较为繁琐;
(3)直接遍历逐个输出,需要改变结构,只对输出做限制,在检测到字符c时,跳过该字符输出下一个即可。节省空间,速度较快。
2.注意输出的格式:
输出换行符时需增加一个getchar()避免多输出一个换行符。
代码:
//采用第三种方式解决
#include<stdio.h>
#include<string.h>
#define Max 10000
int main(){
char s[Max];
while(gets(s))
{
char c;
int len=strlen(s);
s[len]='\0';
scanf("%c",&c);
for(int i=0;i<len;i++)
{
if(s[i]==c)
continue;
else printf("%c",s[i]);
}
printf("\n");
getchar();
}
return 0;
}
测试:
样例输入
goaod a
样例输出
good