Lo de comparar 'if(letra == "")' funcionaría solamente si es C++ y usando alguna clase string que permita comparar strings con ==. En C no es posible porque el string no es un tipo de dato básico, sino que es un array de tipo char (o un puntero char).
La forma más sencilla para verificar si un string está vacío, y sin invocar a ninguna función, es chequear si la primera posición tiene cero binario (el cero binario es el terminador de todo string). Ejemplo, si tenemos:
char palabra[50];
Se puede verificar de estas formas:
if(!palabra[0]) ...
if(palabra[0]=='\0') ...
if(*palabra=='\0') ...
G