ti sei dimenticato di scrivere la cosa più importante...
così gli esempi diventano 2:

ES1:
codice:
#include <iostream>
using namespace std;

int main()
{
    char stringa[20];
    cin >> stringa; 
    
    if(!strcmp(stringa, "ciao"))
        cout << "OK\n";
           
     system("PAUSE");
     return 0;
}
ES2:
codice:
#include <iostream>
using namespace std;

int main()
{
    string stringa;
    cin >> stringa; 
    
    if(stringa == "ciao") 
        cout<< "Ok\n"; 
    
    system("PAUSE");
    return 0;
}
Ora per capire dove stava l'errore, prova questo codice
codice:
#include <iostream>
using namespace std;

int main()
{
    char s[]="ciao"; //dove: s[0]='c', s[1]='i' ... s[4]='\0'
        
    if(!strcmp(s, "ciao")) // ora s è composta da 5 caratteri, quindi è uguale alla stringa con la quale viene confrontata
        cout << "OK\n"; 
           
     system("PAUSE");
     return 0;
}