下面程序的功能是:从字符串str中,删除所有字母c,不区分大小写。输入字符串abcCdefcfCg ,删除后的字符串为abdefg。程序有两处错误,请指出所在行并改正。

L1 int main()L2 {L3 char str[81]; L4 int i = 0, j = 0;L5 gets(str);L6 while(str[i] != '\0')L7 {L8 if(str[i]!='c' || str[i] != 'C')L9 str[j] = str[i];L10 i++;L11 }L12 str[j] = '\0';L13 printf("删除后的字符串:%s", str);L14 }

第8行的if后面应该用添加一个{}把str[j] = str[i] 包进去,并加一个j++。或者直接把第9行改成str[j++] = str[i]


int main()
{
    char str[81]; 
    int i = 0, j = 0;
    gets(str);
    while(str[i] != '\0')
    {
        if(str[i]!='c' && str[i] != 'C') 
            str[j++] = str[i];
        i++;
    }
    str[j] = '\0';
    printf("删除后的字符串:%s", str);
}

第一个错误在第8行,判断条件应该是 str[i] != 'c' && str[i] != 'C' 。
第二个错误在第10行,应该先将符合条件的字符添加到新的字符串 str[j] 中,再将 j 自增。

char str[81];
int i = 0, j = 0;

gets(str);

while (str[i] != '\0') {
    if (str[i] != 'c' && str[i] != 'C') {
        str[j] = str[i];
        j++;
    }
    i++;
}

str[j] = '\0';

printf("删除后的字符串:%s", str);

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    很抱歉,我需要一个具体的问题来回答。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^