C语言字符反序输出有问题

把字符反向输出,不知道为什么只能出来前面4个字符,不知道哪里出来问题

img

仅供参考!

img

#include <stdio.h>
#include <string.h>
void fun(char *s)
{
    int n = strlen(s);
    int m = n / 2;
    char tmp;

    for (int i = 0, j = n - 1; i < m && j >= m + 1; i++, j--)
    {
        tmp = s[i];
        s[i] = s[j];
        s[j] = tmp;
    }
}
int main(int argc, char *argv[])
{
    char s[256];
    scanf("%[^\n\r]s", s);
    char *p = s;
    fun(s);
    puts(p);
    return 0;
}