删除空格,哪里错了🙏

#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <stdlib.h>
void fun (char str)
{
int i,t;
for(i=0;i<81&&
(str+i)!='\0';i++)
if((str+i)=' ')
for(t=i;t<81&&
(str+t+1)!='\0';t++)
(str+t)=(str+t+1);
}
void main()
{
char str[81];
char Msg[]="Input a string:";
int n;
printf(Msg);
gets(str);
puts(str);
fun(str);
printf("*** str: %s\n",str);
}

#include <stdio.h>
#include <ctype.h>

void fun(char *str)
{
    const char *p = str;
    char *q = str;
    while (*p)
    {
        if (isspace(*p))
            p++;
        else
            *q++ = *p++;
    }
    *q = '\0';
}

int main()
{
    const int N = 81;
    char str[N];
    char Msg[] = "Input a string:";
    printf(Msg);
    gets(str);
    puts(str);
    fun(str);
    printf("*** str: %s\n", str);
    return 0;
}