Sto facendo un programma che usa la funzione fork() del sistema per calcolare, in base ad una stringa ed il corrispettivo carattere, la quantita di volte che il carattere si presenta nella posizione pari e nella posizione dispari.

Il programma funziona correttamente!
L'unico problema è che quando stampa il risultato, invece di farlo una volta l'ho fa per 4 volte di seguito ed è 1 cosa che non capisco assolutamente del perchè...

codice:
#include <iostream.h>
#include <stdio.h>

using namespace std;

int main()
{
	char str[10], c;
	int figlio1,figlio2,i,cont1=0,cont2=0;

	cout << "Inserisci la stringa: ";
	fgets(str,10,stdin);
	cout << "Inserisci il carattere: ";
	cin >> c;

	if ((figlio1=fork())==-1){
		cout << "Fork Impossibile!"<< endl;
		exit(-1);
	}
	if ((figlio2=fork())==-1){
		cout << "Fork Impossibile!"<< endl;
		exit(-1);
	}
	else{
		for (i=0; i < 10; i++){
			if ((i%2)==0)
				if (str[i]==c)
					cont1++;
		}
	cout << endl << "Figlio1 = " << cont1 << endl;
	}
	
		for (i=0; i < 10; i++){
			if ((i%2)!=0)
				if (str[i]==c)
					cont2++;
		}
	cout << "Figlio2 = " << cont2 << endl;
	
	return EXIT_SUCCESS;

}
sapreste aiutarmi?