PaulS:
Since key is a char, why is the type of the array int?
Because I'm a noob and out of practice.
Last time I voluntarily worked with a C program was 1991, so I'm trying to catch up. 
Changing it to char worked. Putting the count++ at the end of that loop works as well. Here's the code:
/* keypad and lcd
*
* this will go and take input from the keypad and show it on the LCD screen.
*
*/
#include <Keypad.h>
#include <LiquidCrystal.h>
#include <String.h>
#include <Dhcp.h>
#include <Dns.h>
#include <Ethernet.h>
#include <EthernetClient.h>
#include <EthernetServer.h>
#include <EthernetUdp.h>
#include <util.h>
#include <SPI.h>
// initialize keypad
const byte ROWS = 4; // Four rows
const byte COLS = 3; // Three columns
// Define the Keymap
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'.','0','E'}
};
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = { 17, 18, 19, 20 };
// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = { 16, 15, 14 };
// Create the Keypad
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
// Set up the LCD
LiquidCrystal lcd(22, 23, 24, 25, 26, 27);
// initialize ethernet
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xC1, 0x92 };
// #define ledpin 13
int count=0;
char NewIPAddress[16];
char enteredIPAddress[16];
void setup()
{
// pinMode(ledpin, OUTPUT);
// digitalWrite(ledpin, HIGH);
Serial.begin(19200);
pinMode (14, INPUT);//Column 1
pinMode (15, INPUT);//Column 2
pinMode (16, INPUT);//Column 3
pinMode (17, INPUT);//Row 1
pinMode (18, INPUT);//Row 2
pinMode (19, INPUT);//Row 3
pinMode (20, INPUT);//Row 4
lcd.begin(16, 2);
lcd.print("Obtaining IP...");
Ethernet.begin(mac);
lcd.clear();
lcd.print("Enter IP:");
lcd.setCursor(0, 1);
Serial.println(Ethernet.localIP());
Serial.println(Ethernet.gatewayIP());
Serial.println(Ethernet.subnetMask());
}
void loop()
{
char key = kpd.getKey();
if (key != NO_KEY)
{
lcd.print(key);
Serial.print(key);
// count++;
enteredIPAddress[count] = key;
if (count==17)
{
lcd.clear();
count=0;
lcd.print("Enter IP:");
lcd.setCursor(0, 1);
}
count++;
}
// else if (key='E')
// {
// break;
// }
Serial.println();
for(int i=0; i<16; i++)
{
Serial.print(enteredIPAddress[i]);
}
Serial.println();
}
If you run this, you get serial output and see the string "expand", and it matches the numbers on the LCD screen, but it just continually loops the entered IP address. I'm going to fool around with this a little more and see where I get. 