All pastes #512684 Raw Edit

Mine

public text v1 · immutable
#512684 ·published 2007-05-27 00:14 UTC
rendered paste body
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int write_file(const char *text, const char *file);
int main()
{
   FILE *fin;
   int i, ch, end = 0, length = 0;
   const char *end_str = "END", *end_sen = ".!?";
   char filename[25] = {0}, *p;
   
   if ((fin = fopen("temp.log", "w+")) == NULL) {
      printf("Error opening file\n");
      return 1;
   }
   while ((ch = getchar()) != EOF) {
      if (!strchr(end_str, ch)) {
         for (i = 0; i < end; i++) fputc(end_str[i], fin);
         length++;
         length += end;
         end = 0;
         fputc(ch, fin);         
         if (strchr(end_sen, ch)) {
            fputc('\n', fin);
            length++;
         }
      } else {
         if (!end && strchr(end_str + 1, ch)) {
            fputc(ch, fin);
            length++;
         } else {
            if (end_str[end] == ch) {
               end++;
               if (end == 3) break;
            }
         }
      }
   }
   i = 0;
   p = (char *) calloc(length + 1, 1);
   rewind(fin);
   while ((ch = fgetc(fin)) != EOF) p[i++] = ch;
   fclose(fin);
   getchar();
   printf("Filename: ");
   fgets(filename, sizeof(filename), stdin);
   filename[strcspn(filename, "\n")] = 0x00;
   if (write_file(p, filename)) {
      printf("Error\n");
   } else {
      printf("Sucessfull!\n");
   }
   getche();
   free(p);
   return 0;
}
int write_file(const char *text, const char *file)
{
   FILE *fin;
   if ((fin = fopen(file, "w")) == NULL)
      return 1;
   if (fwrite(text, 1, strlen(text), fin) < strlen(text)) {
      fclose(fin);
      return 1;
   }
   fclose(fin);
   return 0;
}