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; 
}