这个跳过大写字母只输出小写字母的代码哪里错了?

img

void fun(char* s)
{
    int i = 0;
    char* p = s;
    while (*p!='\0') {
        if (*p>='a'&&*p<='z')
        {
            s[i] = *p;
            i++;
        }
        p++;
    }
    s[i] = '\0';//需要加上结束符号,使后面的内容失效
}

函数结束部分要加一个s[i] = '\0'。否则字符串结束符还在原来的地方,整个字符串还是会全部显示出来。