Przepisując wejście na wyjście będzie zastępować znakiem odstępu każdy ciąg ?

0

Witam, jak napisać programy:

  1. Napisz program, który - przepisując wejście na wyjście - będzie zastępować jednym znakiem odstępu każdy ciąg złożony z jednego lub kilku takich znaków ?
    oraz
  2. Napisz program, który podczas kopiowania wejścia na wyjście zastępuje każdy znak tabulacji przez sekwencje znaków \t, każdy znak cofania przez sekwencję \b oraz każdy znak \ przez dwa takie znaki.
    Proszę o pomoc!
0

Pewnie.
A teraz pokaż, co napisałeś.

0

Jedyne na czym mogę się oprzeć to bazowy program przedstawiony przed tym zadaniem czyli zliczający wiersze wejściowe:

#include <stdio.h>

// zlicz wiersze wyjściowe

int main()
{
	int c, nl;

	nl = 0;
	while((getchar()) != EOF){
		if(c == '\n'){
			++nl;
		}
		printf("%d\n", nl);
	}
	return 0;
}

Natomiast co do napisania własnego kodu do zadań 1 i 2 to nie mam pojęcia jak się za nie zabrać :/

0
Heron napisał(a)

co do napisania własnego kodu do zadań 1 i 2 to nie mam pojęcia jak się za nie zabrać :/

To zleć komuś i daj zarobić albo google.pl i pewnie domyślasz się co dalej.

mała podpowiedź: tablica ascii

0

ad1. uzależnij wypisywanie znaku od poprzednio wypisanego znaku
ad2. a w czym problem?

0

ad.1

 
#include<stdio.h>
main()
{
int a,b,c;
while(c!=EOF){
c=getchar();
if(c==' '){
        for(b=getchar();b==' ';b=getchar()){
        ;
    }
    putchar(c);
    putchar(b);
}
else{
putchar(c);
}
}
}

ad 2.

 
#include<stdio.h>
main()
{
int a,b,s,t;
s=92;/*ascii \ */
b=92;/*ascii b */
t=116;/*ascii t */
for(a=getchar();a!=EOF;a=getchar()){
    /*jesli a==\, zamienia na 2x \ */
    if(a==92){
        putchar(s);
        putchar(s);
        }
    /*jesli a==\b, zamienia na \b*/
    else if(a==8){
        putchar(s);
        putchar(b);
        }
    /*jesli a==\t, zamienia na \t */
    else if(a==9){
        putchar(s);
        putchar(t);
        }
    else if(a!=EOF){
        putchar(a);
    }
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1