XBee Newbie needs help getting started

The spaces are just CoolTerm helping you see the individual values. They are not part of what is send by the XBees.

Why did it work before?

Because the = is an operator, and operators return values. The = operator returns a the value assigned. That lets you do stuff like:

int a, b, c;
a = b = c = 14;

In your case, x was assigned the value 3, so the if test was the same as if(3) {}. Since 3 is not 0, the block is executed.

If that picture on the right represents the receiver, the process of sending and receiving data is not working correctly. The received data does not match the sent data. If it represents the sender, there is still a problem, in that the one side appears to be showing binary data and the other side is seeing the data as ASCII data.

Time to post both sets of code again.