#include //program to replace repeated numbers with whitespace without changing positions of remaining numbers char copy(char c); //to create a copy of file.txt to check duplicates int find(int *pos); //to find and return numbers int numofdig(int n); int overwrite(int ow); //to replace duplicate numbers with whitespace int main(){ int val1 = 0, val2 =1; int loc,dig; //to store where scanning was left char c; //to create a duplicate text file to check FILE *fp1, *fp2; //file pointers fp1 = fopen("file.txt","r+"); //opening files fp2 = fopen("abc.txt","w+"); copy(c); //run copy function val1 = find(&loc); printf("%d,%d,%d\n",val1,loc,&loc); dig=numofdig(val1); loc=loc-dig; overwrite(loc); fclose(fp1); fclose(fp2); } char copy(char c){ FILE *fp1, *fp2; fp1 = fopen("file.txt","r+"); //opening files fp2 = fopen("abc.txt","r+"); c = fgetc(fp1); //creating duplicate of file.txt while (c != EOF) { fputc(c, fp2); c = fgetc(fp1); } fclose(fp1); fclose(fp2); } int find(int *pos){ int val=0, val1, val2; FILE *fp1, *fp2; fp1 = fopen("abc.txt", "r"); fp2 = fopen("file.txt", "r"); while((fscanf(fp1, "%d", &val)) != EOF){ if(val == ' ') continue; else val1 = val; if(val != ' ') break; } *pos = ftell(fp1); val = 0; fseek(fp2, *pos, SEEK_SET); while((fscanf(fp2, "%d", &val)) != EOF){ if(val == ' ') continue; else val2 = val; if(val1 == val2) break; } *pos = ftell(fp2); fclose(fp1); fclose(fp2); if(val1 == val2) return val1; else return -1; } int numofdig(int n){ int counter=0; while(n!=0) { n=n/10; counter++; } return counter; } int overwrite(int ow){ char a; FILE *fp; printf("%c,%d\n",a,ow); fp = fopen("file.txt", "w+"); fseek(fp, ow, SEEK_SET); while((a=fgetc(fp)) != EOF && (a != 32)) fputc(32,fp); fclose(fp); }