Re: Trasformare una sequenza di controllo

di il
32 risposte

Re: Trasformare una sequenza di controllo


#include <stdio.h>
#include <string.h>
void read_string(char s[], unsigned int dim);
void invert_escape(char s[], char t[]);
void main()
{
	int i, j;
	char t[20];
	char s[45];
	read_string(t, 20);
	invert_escape(s, t);
	printf("%s", s);

}

void read_string(char s[], unsigned int dim)
{
	int c;
	unsigned int i;
	for (i = 0; i < dim - 1 && (c = getchar()) != EOF; ++i)
	{
		s[i] = c;

	}
	s[i] = '\0';
}

void invert_escape(char s[], char t[])
{
	int i, j;
	for (j = i = 0; i < strlen(t) - 1; i++) {
		if (t[i] == '\\') {
			if (t[++i] == 't') s[j++] = '\t';
		    else if (t[++i] == 'n') s[j++] = '\n';
		}
		else s[j++] = t[i];
	}
	s[j] = '\0';

}
Ho cambiato la funzione escape al contrario, converte una sequenza di controllo nei caratteri corrispondenti ma funziona solo con \t e non con \n.
Qualcuno sa dirmi perchè?

32 Risposte

Devi accedere o registrarti per scrivere nel forum
32 risposte