Ho questo codice, il cui scopo è togliere ogni spazio da una stringa, ma non funziona perché (penso) che in quell'if consideri tutti i caratteri a partire da [i] e non il carattere [i]...
Si potrebbe copiare temporaneamente il carattere in un char... Ma se si può fare in altro modo è meglio

codice:
#include <stdio.h>
#include <string.h>

#define MAXLEN 512

int main(void)
{
    char expression[MAXLEN];
    char cleanexpr[MAXLEN];
    int i;

    printf("Inserisci una espressione > ");
    gets(&expression);

    for (i = 0; i < strlen(expression); i++)
    {
        if (expression[i] != " ")
        {
            strncat(&cleanexpr, &expression[i], 1);
        }
    }

    printf("%s", cleanexpr);
    return 0;
}