ecco un codice che riassume il tutto, stampa una stringa carattere per carattere aspettando 1 secondo:

codice:
#include <ctime> //nuovo time.h
#include <iostream> // nuovo I/O
#include <string>// nuovo string.h che contiene la classe string

using namespace std;
// specifica che verrà usato il namespace detto std(standar)

void aspetta(long m)// m = secondi da aspettare 
{ 
time_t adesso = time(NULL); //prendi l'ora di adesso
while(difftime(time(NULL), adesso) < m);
//se non sono passati "m" secondi da "adesso", ripeti il while

return;//sono passati quindi esce(return opzionale)
}

int main() {
	string str("Testo di prova");//oggetto stringa
	for(register int i = 0; i < str.size(); i++) {
		cout << str[i];
//[] è sovraccaricato quindi non è necessario usare substr
		aspetta(1);//aspetta 1 secondo(molto circa)
	}
	cout << endl;
//quando la stringa è stata stampata tutta vai a capo.

	return 0;//terminato con successo
}
l'ho pure commentato(oggi nevicherà a trieste ), per dubbi chiedi.