输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),
【问题描述】删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),它的功能是将字符串s中出...
【问题描述】
删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),它的功能是将字符串s中出现的所有c字符删除。
【输入形式】
首先打印提示“Input a string:";然后直接在冒号后面输入字符串,字符串中可以包含空格;字符串以回车结束。
打印提示“Input a char:”;然后直接在冒号后面输入一个字符;回车。
【输出形式】
首先打印“After deleted,the string is:”;紧跟后面输出被删除后的字符串剩余内容;换行。
【运行时的输入输出样例】(下划线部分表示输入)
Input a string:happy new year
Input a char:a
After deleted,the string is:hppy new yer
我写的是这样的:
#include<stdio.h>
int main(void)
{
char str[80]={0},a;
char delchar(char *str,char c);
printf("Input a string:");
gets(str);
printf("Input a char:");
scanf("%c",&a);
char delchar(char *str,char a);
printf("After deleted,the string is:");
puts(str);
return 0;
}
char delchar(char *str,char c){
int i,j;
for(i=j=0;str[i]!='\0';i++){
if(str[i]!=c)
str[j++]=str[i];
}
str[j]='\0';
return str;
}
哪错了 ,要怎么该啊? 展开
删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),它的功能是将字符串s中出现的所有c字符删除。
【输入形式】
首先打印提示“Input a string:";然后直接在冒号后面输入字符串,字符串中可以包含空格;字符串以回车结束。
打印提示“Input a char:”;然后直接在冒号后面输入一个字符;回车。
【输出形式】
首先打印“After deleted,the string is:”;紧跟后面输出被删除后的字符串剩余内容;换行。
【运行时的输入输出样例】(下划线部分表示输入)
Input a string:happy new year
Input a char:a
After deleted,the string is:hppy new yer
我写的是这样的:
#include<stdio.h>
int main(void)
{
char str[80]={0},a;
char delchar(char *str,char c);
printf("Input a string:");
gets(str);
printf("Input a char:");
scanf("%c",&a);
char delchar(char *str,char a);
printf("After deleted,the string is:");
puts(str);
return 0;
}
char delchar(char *str,char c){
int i,j;
for(i=j=0;str[i]!='\0';i++){
if(str[i]!=c)
str[j++]=str[i];
}
str[j]='\0';
return str;
}
哪错了 ,要怎么该啊? 展开
1个回答
展开全部
#include <stdio.h>
void delchar(char *s,char c)
{
char *p;
for(p=s;*s;s++)
if(*s!=c)
*p++=*s;
*p='\0';
}
void main()
{
char c,s[100];
printf("输入字符串:");
gets(s);
printf("输入要删除的字符:");
scanf("%c",&c);
delchar(s,c);
printf("%s\n",s);
}
void delchar(char *s,char c)
{
char *p;
for(p=s;*s;s++)
if(*s!=c)
*p++=*s;
*p='\0';
}
void main()
{
char c,s[100];
printf("输入字符串:");
gets(s);
printf("输入要删除的字符:");
scanf("%c",&c);
delchar(s,c);
printf("%s\n",s);
}
追问
for(p=s;*s;s++)
if(*s!=c)
*p++=*s;
*p='\0';
这段能帮我解释一下吗?不是很明白 。谢了!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |