求教一道C语言题目

2024-12-29 13:46:28
推荐回答(2个)
回答1:

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

#include
#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';
}

附个测试结果吧:

回答2:

Oh, no!
你这程序是要闹哪样?
字符数组和单个字符数组中的元素都没有弄明白呢
我的建设是好好拿一本C语言入门书读读吧。
就是这次告诉了,以现在的水平来看。。。
建设还是从头好好读一遍书