为什么程序运行后不输出删除后的字符串?

img


为什么程序运行后,并没有出现删除后的字符串?这个程序哪里有问题吗?

两个错误

  1. 字符串的结尾是 '\0' 不是 '0'
  2. 删除的操作 应该是 s[j] = s[j+1]

正确代码如下:

void fun(char s[], char c) {
    int i,j;
    for (i = 0; s[i] != '\0'; i++) {
        if(s[i]==c) {
            for (j = i; s[j]!='\0'; j++) {
                s[j] = s[j+1];
            }
            i--;
        }
    }
}