求教一道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>
char delchar(char sx[],char c);
int main(void)
{
char sx[80],c;
int i=0;
printf("Input a string: ");
while(sx[i]!='\n'){
scanf("%s",&sx[i]);
i++;
}
printf("Input a char: ");
scanf("%s",&c);
sx[i]=delchar(sx,c);
printf("After deleted, the string is: %s",sx[i]);

return 0;
}
char delchar(char sx[],char c)
{
char str[80];
int j;
while(sx!='\0')
{
char str[80];
int j=0;
if(sx!=c){
str[j]=sx;
j++;
}
}
str[j]='\0';
return str[j];
}
我编译之后输入字符串运行一直显示运行时间过长,求教是怎么回事?谢谢了
展开
 我来答
whanyzt
推荐于2016-09-25 · TA获得超过481个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:131万
展开全部

给你简单改了一下,加了点说明,供参考,有不明白的再问吧:

#include<stdio.h>
#define SZ_SIZE 80
void delchar(const char sx[], char c, char (&szAft)[SZ_SIZE]);
int main(void)
{
    char c;
    char sx[SZ_SIZE] = {0};
    char sAfter[SZ_SIZE] = {0};
    int i=0;
    printf("Input a string: ");
//  while(sx[i]!='\n'){
//      scanf("%s",&sx[i]);
//      i++;
//  }
    gets(sx);   // 换用gets来接收字串比较方便
    printf("Input a char: ");
//  scanf("%s",&c);
    scanf("%c",&c); // 字符格式化应该是%c
    delchar(sx,c, sAfter);
    printf("After deleted, the string is: %s\n", sAfter);
                                               
    return 0;
}
// szAft: 返回串.
void delchar(const char sx[], char c, char (&szAft)[SZ_SIZE])
{
    int j = 0;
    while(*sx!='\0' && j<(SZ_SIZE-1)/*防止越界*/)
    {
//      char str[80];   // 这句删除
        if(*sx != c)
            szAft[j++] = *sx;
        ++sx;
    }
    szAft[j]='\0';
}

附个测试结果吧:

buxingxing0123
2013-05-17 · TA获得超过281个赞
知道小有建树答主
回答量:396
采纳率:0%
帮助的人:286万
展开全部
Oh, no!
你这程序是要闹哪样?
字符数组和单个字符数组中的元素都没有弄明白呢
我的建设是好好拿一本C语言入门书读读吧。
就是这次告诉了,以现在的水平来看。。。
建设还是从头好好读一遍书
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式