Witam!
Napisałam program jak w temacie na 2 sposoby, czy są one ok?
#include <stdio.h>
#define MAKSYMALNY 1000
int pobierz_wiersz(char wiersz[], int lim);
void kopiuj(char doo[], char z[]);
main(){
int dlugosc;
int i, z;
char wejsciowy[MAKSYMALNY];
char wyjsciowy[MAKSYMALNY];
while ((dlugosc = pobierz_wiersz(wejsciowy, MAKSYMALNY)) > 0){
kopiuj(wyjsciowy, wejsciowy);
printf("%s", wyjsciowy);
}
return 0;
}
int pobierz_wiersz(char s[], int lim){
int c, i;
for (i = 0; i < lim -1 && (c = getchar()) != EOF && c != '\n'; i++)
s[i] = c;
if(c == '\n'){
s[i] = c;
i++;
}
s[i]='\0';
return i;
}
void kopiuj(char doo[], char z[]){
int i, k, lim;
i = 0;
while(z[i] != '\0'){
if(z[i] == '\t' || z[i] == ' ')
++i;
else{
for(k = 0; k < lim; ++k){
doo[k]=z[i];
++i;
}
break;
}
}
}
#include <stdio.h>
#define MAKSYMALNY 1000
int pobierz_wiersz(char wiersz[], int lim);
void kopiuj(char doo[], char z[]);
// Program pomija początkowe znaki odstępu i tabulacji oraz usuwa całkowicie białe wiersze
main(){
int dlugosc;
int i, z;
char wejsciowy[MAKSYMALNY];
char wyjsciowy[MAKSYMALNY];
while ((dlugosc = pobierz_wiersz(wejsciowy, MAKSYMALNY)) > 0){
kopiuj(wyjsciowy, wejsciowy);
for(i = 0; i <= dlugosc; ++i){
if(wyjsciowy[i] != '\t' && wyjsciowy[i] != ' '){
for(z = i; z <= dlugosc; ++z)
printf("%c", wyjsciowy[z]);
break;
}
else continue;
}
}
return 0;
}
// wczytaj wiersz do s, podaj jego dlugosc
int pobierz_wiersz(char s[], int lim){
int c, i;
for (i = 0; i < lim -1 && (c = getchar()) != EOF && c != '\n'; i++)
s[i] = c;
if(c == '\n'){
s[i] = c;
i++;
}
s[i]='\0';
return i;
}
//przepisz z "z" do "doo"; "doo" musi byc dostatecznie duze
void kopiuj(char doo[], char z[]){
int i;
i=0;
while((doo[i] = z[i]) != '\0')
i++;
}
Z góry dzięki za wszelką pomoc :)