Solution in C please. Write a program that processes a data file of names in which each name is on a separate line of at most 80 characters. Here are two sample names: Hartman-Montgomery, Jane R. Doe, J. D. On each line the surname is followed by a comma and a space. Next comes the first name or initial, then a space and the middle initial. Your program should scan the names into three arrays_surname, first, and middle_init. If the surname is longer than 15 characters, store only the first 15. Similarly, limit the first name to ten characters. Do not store periods in the first and middle_init arrays. Write the array’s contents to a file, aligning the contents of each column: Hartman-Montgomery, Jane R Doe J D Solution Ans; #include<stdio.h> int main() { freopen(\"in.txt\" , \"r\" , stdin); freopen(\"out.txt\" , \"w\" , stdout); int co = 0 , line = 0; char c , inp[100] = {\'\\0\'}; while(gets(inp)) { char surname[16] = {\'\\0\'}, first_name[11] = {\'\\0\'}, last_name[11] = {\'\\0\'}; int sidx = 0 , fidx = 0 , lidx = 0; co++; int l = strlen(inp) , i = 0 , j = 0, k = 0 , fflag = 0 , sflag = 0; for(i=0;i<l;i++) { if(inp[i] == \',\') break; if(sidx >= 15) sflag = 1; if(sflag == 0) { surname[sidx] = inp[i]; sidx++; } } surname[sidx] = \'\\0\'; i++; // Increment to avoid space for(j=i+1;j<l;j++) { if(inp[j] == \' \') break; if(fidx >= 10) fflag = 1; if(inp[j] != \'.\' && fflag == 0) { first_name[fidx] = inp[j]; fidx++; } } first_name[fidx] = \'\\0\'; for(k=j+1;k<l;k++) { if(lidx >= 10) break; last_name[lidx] = inp[k]; lidx++; } last_name[lidx] = \'\\0\'; printf(\"%s %s %s\ \",surname , first_name , last_name); } return 0; } .