how do I buffer serial to receive words instead of single characters?

BTW, I'm using 46 because I think that equals the "."

Then, why not use '.'?

int words[100];

One does not read ints from the serial port. One does not read words from the serial port.

void loop() 
{  
  inputbuffer();
    
  
  
  
}

Could you maybe add a few more useless blank lines?

        if(words[x] = 46)

Assigning 46 to words[x] will always succeed, so the test will always be true. ==?

The words array should have a much better name. The type should be char. After each character is added, a NULL needs to be added after it (but don't increment the index again).

          for (i = 0; i < x; i++)
          {
          Serial.print(words[i]);
          }

If you properly NULL terminated the array, and it was the right size/type, you wouldn't need a for loop to print it.

At some point, it might be a good idea to reset i to 0.