No nn funziona correttamente...cmq ho aggiutno qualcosa e adesso comincia a funzionare, più o meno...
In effetti se io scrivo:

codice:
a b
Devo vedere visualizzato un testo giustificato in modo tale da ottenere:

codice:
a                                                                           b
Ma è nella determinazione degli spazi che nn funziona qualcosa...ci sto sbattendo troppo la testa e sto un pò fuso...se come determinazione degli spazi da inserire tra una parola e l'altra facessi: spa_ins=80-conta_caratteri la cosa potrebbe anche funzionare se io scrivessi due parole da un carattere ciascuna, cioè a b ma per gli altri casi no....come li posso determinare?

Questa è l'ultima versione:

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


void clear_buffer(), giustifica();
const int n=5;
int i;
char testo[80], testo2[80];

int main(){
    cout<<"Inserire il testo (Premere * per terminare):\n\n";
    i=0;
    do{
	cin.get(testo,80,'\n');
        clear_buffer();
        if(testo[0] != '*')
             giustifica();
        i++;
    }while((i<n)&&(testo[0]!='*'));
    for(i=0;i<80;i++)
       cout<<testo2[i] ;
    getch();
    return 0;
}

void clear_buffer(){
      char car;
      do{
	  car=cin.get();
      }while(car != '\n');
}

void giustifica(){
      int s=0, j, conta_caratteri=0, conta_parole=0, num_spazi, spa_ins, k, l;
      // conteggio dei caratteri e delle parole
      j=0;
      while(testo[j]!='\0'){
	   if(testo[j]!=' ')
	       conta_caratteri++;
	   if(((testo[j]==' ')&&(testo[j+1]!=' ')||(testo[j+1]=='\0')))
	       conta_parole++;
	   j++;
      }
      // determ. spazi
      num_spazi=80-conta_caratteri;
      spa_ins=num_spazi/conta_parole;
      // inserimento spazi
      k=0;
      l=0;
      while(testo[k]!='\0'){
	      if(testo[k]==' '){
		   l=0;
		   while(l<spa_ins){
			  testo2[k+s]=' ';
			  l++;
			  s++;
		   }
		   s--;
	       }
	       else
		   testo2[k+s]=testo[k];
	       k++;
       }
}