This loop follows your general approach to processing a file in blocks:
Your approach has been changed:
# include <stdio.h>
# include <stdlib.h>
int main() {
FILE *in;
char myStr[100],newStr[100];
int ch;
int j,i,k,z=0;
in=fopen("duom.txt","r");
if(!(in)) { fprintf(stderr,"Error opening file!\n"); }
else {
int go = 1;
while(go) {
z = 0;
ch = '\0';
while(z < 100 && EOF != ch){
ch=fgetc(in);
if(EOF == ch) { go = 0; }
else { myStr[z++] = ch; }
}
myStr[z] = '\0';
for(i=0; myStr[i] != '\0'; i++) {
if(i== 0 && myStr[i] == ' ' ) { continue; }
if(i==98 && myStr[i] == ' ' ) { continue; }
if(i==97 && myStr[i] == ' ' && myStr[i+1] == ' ') { continue; }
if(i > 0 && myStr[i] == ' ' && myStr[i+1] == ' ' && myStr[i-1] != '.') { continue; }
newStr[k] = myStr[i];
k++;
}
for(j=0;j<k;j++){ printf("%c",newStr[j]); }
}
printf("\n");
fclose(in);
}
return 0;
}
, 99 , 99 char . , / , = 1 = 2 = 97 = 98 .
, .
:
# include <stdio.h>
# include <stdlib.h>
int main() {
FILE *in;
in=fopen("duom.txt","r");
if(!(in)) { fprintf(stderr,"Error opening file!\n"); return -1; }
int x;
int y;
for(y='\0'; (x=fgetc(in)) != EOF; y=x) {
if(x != ' ') { printf("%c",x); }
else if(x == ' ' && y == '.') { printf(" "); }
else if(x == ' ' && y != '.' && y != ' ') { printf(" "); }
else { ; }
}
printf("\n");
fclose(in);
return 0;
}