Grazie a mondobimbi ho risolto, il codice funziona.
Adesso ho voluto complicare un pò le cose, e anzichè passargli un'unica parola, è mia intenzione passare un array di parole, dichiarato nel main, e attraverso l'uso della funzione di ripulitura, rifare ciò che è stato fatto in precedenza. Con un semplice ciclo FOR pensavo di poter risolvere invece, funziona solo in parte e come al solito non riesco a cancellare la congiunzione e gli spazi.
Nella parte dell'IF si dovrebbe rilevare la congiunzione e sostituirla con degli spazi vuoti, nel WHILE invece trimmare gli spazi, però ricevo errori di memoria, potete vedere per cortesia?
spero che i commenti nel programma possano aiutarvi. GRAZIE DI NUOVO!!!

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


using namespace std;


int ripulitura (char via[50][50])
{

	// definizione delle variabili e puntatori
	int lunghezza_i;
	int lunghezza_cong;
	int i = 0;
	int l = 0;
	char temp[20];
	char *tmp = temp;
	char *puntatore;

	
	// definizione della congiunzione
	char cong1[] = " DI ";
	char *cong = cong1;
	
	lunghezza_cong = strlen(cong);


	// definisce la lunghezza della stringa di partenza e della congiunzione
	for (l=0; l<4; l++)
	{
		
		i = 0;
		lunghezza_i= strlen(via[l]);

		// stampa la stringa di partenza e la sua lunghezza
		cout << "\nStringa:\t "<< via[l] << endl;
		cout << "Lunghezza:\t " << lunghezza_i << endl;

		// ricerca della parola da eliminare
		// STRSTR: ritorna in punt,il puntatore nella posizione della prima ripetizione della congiunzione
		puntatore= strstr (via[l],cong);

		// inserisce lo spazio dove ha trovato la congiunzione
		// lo spazio è indicato col suo carattere ascii 32
		if (puntatore != 0)
		{
			while (i < lunghezza_cong)
			{
				*(puntatore+i)=32;
				i++;
			}
		}

		while (via) 
		{

		//la funzione ritorna un valore diverso da 0 se ho uno spazio
		if ( !isspace (*via[l]))
			{
			*tmp = *via[l];
			tmp = tmp + 1;
			}
		via = via + 1;
		}

		// inserisco il carattere di fine stringa
		*tmp = '\0';

		// stampo la stringa prova di spazi
		cout << "Ripulita:\t " << temp << endl; 

	}
	return 0;

}


void main()
{

	// definisco un vettore di lunghezza fissa
	// vie_viario indica l'elenco delle vie giuste

	char vie_viario[50][50] = {"VIA DELLE PERLE","VIA DELLE TERME","VIA DI PROVA","VIA DI CITTA"};

	// richiamo la funzione di ripulitura

	int d = ripulitura(vie_viario);
}
so che è un programma un pò strano ma in sostanza, ciò che dovrebbe fare il programma è restituire le parole dell'array, ripulite dalle congiunzioni (per adesso solo DI) e dagli spazi:
esempio:

VIA DELLE PERLE -> VIAPERLE