Re: Trasformare una sequenza di controllo

di il
32 risposte

32 Risposte - Pagina 3

  • Re: Re: Trasformare una sequenza di controllo

    Esc è un flag che ti indica che il carattere precedente era un \ e quindi deve essere controllato il successivo per capire se è \ n t per assegnare il corretto carattere al vettore.

    Tuttavia andrebbe perfezionato ancora per altri casi ... ma non è questo il fatto fondamentale ... è per farti ragionare.
    Ci hai messo tanto per fare quel codice?
    Ovviamente non hai compreso che lavoro con il C da 35 anni ... è un codice banale da 2 minuti ... (ovviamente è così anche per quelli che ti rispondono, basta aver studiato il C e avere l'esperienza di base per ottenere del codice simile, non sono necessari anni). Nello stesso capitolo IF-ELSE avresti dovuto affrontare anche l'operatore ternario e allora quel codice poteva diventare
    
    	unsigned int i, j, esc=0;
    	for (j = i = 0; i < strlen(t); i++) {
    		switch (t[i])
    		{
    		case '\\':
    			esc += (esc) ? s[j++] = '\\', -1 : 1;
    			break;
    		case 't':
    			s[j++] = (esc) ? esc--, '\t' : 't';
    			break;
    		case 'n':
    			s[j++] = (esc) ? esc--, '\n' : 'n';
    			break;
    		default:
    			s[j++] = t[i];
    			break;
    		}
    	}
    	s[j] = '\0';
    
    Nota anche

    i < strlen(t)

    e non

    i < strlen(t) - 1

    che penso ti venga suggerito da giorni ...
  • Re: Re: Trasformare una sequenza di controllo

    Ok grazie Oregon
  • Re: Re: Trasformare una sequenza di controllo

    Tutti i consigli mi arrivano da questo forum
Devi accedere o registrarti per scrivere nel forum
32 risposte