删除字符串中的字符.输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除

【问题描述】删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除,然后输出删除后的字符串。【输入形式】输入字符串和字符【输出形式】输出... 【问题描述】删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除,然后输出删除后的字符串。
【输入形式】输入字符串和字符
【输出形式】输出删除字符后的字符串
【样例输入】happy new year a
【样例输出】hppy new yer
【样例说明】
【评分标准】
下面是我编的代码,麻烦指出错误和修改
#include
main()
{
char s[20]={0};
char c=0;
int i;
scanf("%s",&s);
scanf("%c",&c);
for(i=0;i<strlen(s);i++)
{
if(s[i]!="c")
printf("%c",s[i]);
}
}
展开
 我来答
mafangsan
2014-05-04 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2582万
展开全部
第一个
scanf("%s",&s); 因为数组名就是地址,所以不是这里面错了,里面应该不要&

第二个,if(s[i]!="c") 这里不是和字符串“C”比较,应该去掉那一对双引号

第三个,你的写法其实不是删除,而是不打印指定的符号。
追问
怎么写才是删除呢,你能给出代码么?
追答
删除就要把后面的往前移呀。
 
给你看一断删除 'S' 的代码,你参考了修改一下。
 
#include<stdio.h>
int main()
{
 int i,j;
 char s[80];
 printf("\nEnter a string:  ");
 gets(s);
 printf("The original string is: ");
 puts(s);
 for(i=j=0;s[i]!='\0';i++)
  if(s[i]!='S')  //这里写 ‘S’就只能删'S'了,应该是和你字符变量比较,这个字符变量应该是用户输入的。
   s[j++]=s[i];
 s[j]='\0';
 printf("The string after deleted is: ");
 puts(s);
}
IT孤鹜
推荐于2016-02-15 · TA获得超过4198个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3571万
展开全部
#include<stdio.h>  //头文件没加
#include<string.h>
main()
{
char s[20]={0};
char c=0;
int i; 
 scanf("%s %c",s,&c);  //不能分开写,否则空格会给c的
 for(i=0;i<strlen(s);i++)

   if(s[i]!=c)    //
 printf("%c",s[i]);  
}
 }
追问

为什么会这样?

追答
#include<stdio.h>  //头文件没加
#include<string.h>
main()
{
char s[100]={0};
char c=0;
int i; 
 gets(s); 
 c=getchar();
 for(i=0;i<strlen(s);i++)

   if(s[i]!=c)   
 printf("%c",s[i]);  
}
 printf("\n");
 }
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式