Created
August 3, 2009 05:04
-
-
Save supermario/160369 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MarioRogic, mrog212 | |
// Wed15-Bugle | |
// 29/07/09 | |
// Lab02: analyse dna sequences | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
int getLineCount(FILE * pFile); | |
int main (int argc, char **argv) { | |
if (argc < 2) { | |
printf ("You need to provide a filename for analysis!\n"); | |
return (0); | |
} | |
char buffer[100]; /* Buffer for reading in from file */ | |
FILE * pFile; /* File stream */ | |
int lowest = 0; /* Array index of the lowest value */ | |
char *pTemp = NULL; /* Temp pointer */ | |
int i = 0, j = 0; /* Loop counters */ | |
// Get filename and open for reading | |
pFile = fopen(argv[1], "r"); | |
if (pFile == NULL) { | |
perror("Error opening file"); | |
} else { | |
// Get number of lines and initialise variable to hold data | |
int lines = getLineCount(pFile); | |
char *pStrings[lines]; | |
// Read all lines from file into malloc'ed array locations | |
i = 0; | |
while (fgets(buffer , 100 , pFile) != NULL) { | |
// Fix up if no trailing newline | |
if (buffer[strlen(buffer)-1] != 10) { | |
buffer[strlen(buffer)] = 10; | |
} | |
// Malloc new data location | |
if ((pStrings[i] = (char*)malloc(strlen(buffer) + 1)) == NULL) { | |
printf("Memory allocation error."); | |
exit(1); | |
}; | |
strcpy(pStrings[i], buffer); | |
i++; | |
} | |
fclose(pFile); | |
// Order data using in place selection sort | |
for (i = 0; i < lines; i++) { | |
lowest = i; | |
// Find the next lowest string | |
for (j = i; j < lines; j++) { | |
if(strcmp(pStrings[lowest], pStrings[j]) > 0) { | |
lowest = j; | |
} | |
} | |
// If a lower string found than current, swap | |
if (lowest != i) { | |
pTemp = pStrings[i]; | |
pStrings[i] = pStrings[lowest]; | |
pStrings[lowest] = pTemp; | |
} | |
} | |
// Print sorted data | |
i = 0; | |
while (pStrings[i]) { | |
printf("%s",pStrings[i]); | |
//free(pStrings[i]); /* This line when uncommented causes additional problems */ | |
i++; | |
} | |
} | |
printf("\n"); | |
return (0); | |
} | |
int getLineCount(FILE * pFile) { | |
// Loop through all characters in file, counting newlines | |
int ch, prev = '\n', lines = 0; | |
while ( (ch = fgetc(pFile)) != EOF ) { | |
if ( ch == '\n' ) { | |
++lines; | |
} | |
prev = ch; | |
} | |
if ( prev != '\n' ) { | |
++lines; | |
} | |
rewind(pFile); | |
return(lines); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TAATGTTATCTGAGATCGGGGCATCCTTTTAATTA | |
GCCTGCAGAGTATATGACGTTTTTATATTCCATTA | |
ATCACATTGGGTCCCTAAGGTGCGGAACGGGCACA | |
ACTCATAGAGGCTCACATGATCGCCTGTTAGCATG | |
GCTTCGGCTCTTAGGGGTCAATATTCACCGGCGCA | |
TAGTGTTGAGACTCCCATCAAGCGGAACCGGCACA | |
TAGCTTATCAGACACTACACTGGCGGAGGGCCGCG | |
TAGCACCATCTGATTAGCAGCCCATTCCCCGGCAA | |
GGGGGGGGGACGGGAACGCCGTTGTCGTCCACCCC | |
AGCCTGGTCCACATGGCGGCCGATATCCAATCGTA | |
GCTACAACAGACTGATCGTGGCATAAGATATTACG | |
AGTAATCGTTGTCGGTGAGTACGCCGACCGCGTAC | |
CGTACCCACCAAGTCACCATTCCTTCGATATCCAT | |
CGCGACCTCAGATCAGACGTGCGCTGGTATTCACG | |
GTCCTTGTTGTATAAACTAATACACCAGTAACGCC | |
GCAAAGGATGACAAAGTCACCCGCCCTTGGCTACG | |
TGGCTCAGGGACTGTGCTGTGTAAAGGTTAATGTG | |
ATTCCACTGCTCGACCGCGCGCTGCGGATGATTAC | |
GGCTCGTTGGTCTAGGGGTATGATCCCTATTATTC | |
TAGTCACATGGTGTGCTCATTCATAAGGTGCCGCA | |
TGCGTTCGCGCTTTCCCCTGCGCCTTGTAATGTGT | |
ATCCCATCCTCGTCGCTCAACGCCTTGTAATGTGT | |
CGCGTGGAGAGTAGTAGCTGGATAAGGTCGGCAGT | |
ATCACATTGGGTCCCATAGAGGCCCTTGGGGCATG | |
TAGTGTTTAGACATTAGCCAGTGCGGAAAATTACG | |
AGATGTCATGTCAATGCGTGCACATAAAACGCCGT | |
TAGCACCATCTGACCGCTGCCGTATTCCCGCCGCG | |
AGTAAGGTCAGCTAAGCGGACTATCAAGTTACATA | |
GGCTCGTTGGTCTAGGGGTATGATTATCGCCGCCT | |
ATAACGTGAAACTTTTTACTTGATATCCAACCGTA | |
CCCGGGTTTTTCACAAAATTTCCCGCCGTTATCGG | |
ACGATACCCAACGCCCTTGCTTATTCCAATTAGCA | |
GTTCAACTTTAAGCCCATTTGTGAGGTTGCTGGTA | |
GTTGCAATACTTAGCCCCCATTGTATTCCATAATG | |
GCTAAACCTAGCCCCAAACCCACTCCACCTTACTA | |
CAGGACACTGCACTGTACTCATTGTAAGGGGCCGC | |
TAGACAGTGTCAAGTGCGTACATAGAATTGGCGCA | |
GCATTGGTGGTTCAGTGGTAGAACCTCTAAAGGGC | |
ATCACATTGAACTTTATAATATTCCTTAATTACAC | |
ATTTCCAAGTTGGACCGGAGGAATTTTTTAATGCA | |
CCTTCCAAGCAGTGTCAAACCTATCGCCCCAATCG | |
TAGGGGTTTTAAGTGATGTTGGAAACGGGTAAAAC | |
AGATGAGATGTCTTACGAACACGCCAAGGCCGCGT | |
ATTCACGACGGTTCCATAACTGCCGCGCCAATTAT | |
GCTTCTGTAGTGTAGTGTGGGCACATGGATAACCA | |
TAGTGTTCCTCTCAATCAACCGGCGGAACCGGCAT | |
TAGGAATAGTTATCAATGAACGATATTCCAATTAC | |
TAGGTGGTAGACTAATTGTGGATTCTTGTAATGCA | |
GCAGTCGTAGGGCAATTTGTGGGCCCTTGGCCGTG | |
AGCTACATTGTCTGTAGGGGATAATTCCGGCTACC | |
TAGAGCGCACTCAGTCGCGGCGTATAAGTGCGGCA | |
TAGCTTATCAAGTTGTTGCTGACGCCCCCCGGCAT | |
CCCCCCACTGCTAACGGGTTGACCAAACGTTCCAT | |
TCCTCGTTAGTATAGTGGTGGACGCCCCCGCCCCA | |
TAGCACCATCTGACCGGTCGCGTACCTTCCGGCGC | |
TAGCACCATCTGACATCGTGGCGCGCGGTTGGCAT | |
GCGCCGCTGGTGTAGTGGTATCATGTGCTCATCCT | |
TCCCTGGTGGTCTAGTGGTTAGGAAAGCCCGCCCC | |
CGGTAGAGCATGAGACTCTTAATCTCAGGGTCGAG | |
TAACTTATCAGACTGACGTTGATATTCCAATTACG | |
TCGATTCCCCTTGGGGGAGCCGACGCCTTGGCCGG | |
CCATGATTTTCGGTGAAAATTGTGTTGTATTCCAA | |
GATCGATGTGGTGACCATCACGTGCGGAACCGGCA | |
ATGGAGTAGTGTTCACATGAGATAACCCCGGCCGT | |
GCTAAACCTAGCCCCAAACCCACTCCGTTCCAATT | |
AGATGTCTAGAGAAATTAGCCGTATTCCAATTTGC | |
TGAGGTAGTAGATTGCGTTTCGCCTTGCGGCGTGT | |
CGGCGGGGGATTAAATCCTTATCGCCTTGGCCGTA | |
AGCTCGAGCTGTGTTTCTAGTATTCGTTATGTACA | |
TGGCTTATCAGAATGGCACAGTACGCCTTGGCCGT | |
TTCACTGCGCTTAAAGTGATAATATCCAATTACGC | |
ATTTCGTAGCGCGACCATTCATCGCCCTCAATTCA | |
ACCCCACTCCTGATATTTTGTCTTCTTTTATTCCA | |
GCCGCGCGGGGGCCCTTGCGGCATGTCGTCCACCC | |
TAGCTTATGTCTGACTTGTTGCCATATCACCCCAC | |
CGATGTTGCTCTCGTAGCGTTCGCCTTGCGGCACA | |
GGCTCGTTGGTCTAGGGGTACAGCCATACTGGCGG | |
GCCCTGTATGGGATCCTTGCAATGTATTCCAACCG | |
AACCGGGCGGTTTGTGGTTTGCCCTTGGCCGTGTG | |
AACCGGATACTTGGAAGAGGGAACGGGATTTCCAA | |
TCGATCCCCGGCATCCTGGTTGTATTCCAATTACG | |
TAGCTTATGTCTGTGAACAACGATATAACCAATGC | |
CGACACCTCTCAGTTATATTTCGGGAACGCCGTGT | |
TGTGACTCTGATATACTTGAGACGAAGGTTAATGT | |
TAGCTTATGTCCACAGCAAACGTATAAGGTTAACA | |
CGAAGCAAGTGTCTGTGTCTCTATTCCGGCGCCGT | |
CAAAGTGCTGTTCGTGCTCAGGGAATAAGACCCCC | |
TTCACTGCCGAACTTTTTCTAGATGGAACCGGCAA | |
TAGCTATACAGAGCAGCACCATGCGCCCCAATTGT | |
ACGCGGGAGGCCCGGGTTCGCGGAAATTAAACACG | |
GTCCTTGTGGTATAAACTAATACACCAGTAGCCCC | |
TAGCTTATGTCCACAATGTTGGTGGTGTATTCCAA | |
CACCATCAATGAACATTCCTCTAAGCGGGGGGCCG | |
CGAAGCGCACTTGTGATGTTGCATATTCCAATTAC | |
ATCCCACTTCTGACACCAAACGCCTTGATTACTGT | |
ATTCCCATGGAGCTGGCAGAATGTTTTCCCCGGCC | |
AGCCCAGCGCCGAATCCCCGCGCCTTGGCCGTGTG | |
TATTGTGTCCACTTTTCAAGGACGCCTTGGCCGTA | |
GCTAAACCTACGGGGTTTGGGTGAGGTGGCGGAAC |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment