1)Dopo h=false; ci va un break per evitare di ciclare per tutta la stringa.
2)includi la vecchia <iostream.h> che non è standard, devi includere <iostream> senza .h e scrivere std::cout << h
3)in C++ non si usa gets, usa piuttosto cin, i miscugli C e C++ fanno confusione, anche se a volte si usano lo stesso, è meglio cercare di evitarli.
4)usi 2 variabili indice quando ne basta una
5)non controlli che la stringa in input sia sufficiente a contenere l'input dell'utente, ma va bene lo stesso visto che è un'esercizio.
6)Probabilmente l'algoritmo funziona ma non ti da output perchè cout << h non stampa nulla, almeno con la mia iostream.h, mentre con iostream stampa bene.
Eccoti una soluzione + professionale al tuo esercizio
codice:
#include <iostream>
const char const * TrueFalse[] = {"false", "true"};
int main()
{
char c[100],f[100];
bool h=true;
int i=0;
std::cin >> c;
std::cin >> f;
while (c[i] != '\0' && f[i]!='\0' && c[i] == f[i])
++i;
h = c[i] == f[i];
std::cout << TrueFalse[static_cast<int>(h)] << "\n";
system("PAUSE");
return 0;
}