C语言编程删除空格时出现问题,请解答?

for(i=0,j=0;i<=strnlen_s(pSend,capacity);++i)
{
    if(*(pSend+i)==' ')
        judge=false;
    if(judge)
    {
        *(pSend + j++)=*(pSend+i);
    }
}
以上方法无法删除空格。
    for(i=0,j=0;i<=strnlen_s(pSend,capacity);++i)
{
    if(*(pSend+i)!=' ')
        *(pSend + j++)=*(pSend+i);
}
以上方法可以删除空格。
请问为什么?

第一种方法感觉judge变为false以后,再不能变为true了,所以删除不了空格