/*------------------------------------------------------------------------------ * binning.c: find first non-repeating letter in a string **----------------------------------------------------------------------------*/ /* Copyright (c) 2009 Peter Bui. All Rights Reserved. * * Peter Bui * **------------------------------------------------------------------------------ * Includes **----------------------------------------------------------------------------*/ #include #include #include /*------------------------------------------------------------------------------ * Constants **----------------------------------------------------------------------------*/ #define MAX_STRLEN 128 #define NLETTERS 26 /*------------------------------------------------------------------------------ * Functions **----------------------------------------------------------------------------*/ char find_first_nonrepeating_letter(char *s) { char letter_count[NLETTERS]; char *sptr; for(sptr = s; *sptr != 0; sptr++) if (isalpha(*sptr)) letter_count[tolower(*sptr) - 'a']++; for(sptr = s; *sptr != 0; sptr++) if (isalpha(*sptr)) if (letter_count[tolower(*sptr) - 'a'] == 1) return *sptr; return 0; } /*------------------------------------------------------------------------------ * Main Execution **----------------------------------------------------------------------------*/ int main(int argc, char* argv[]) { char buffer[MAX_STRLEN]; while (fgets(buffer, MAX_STRLEN, stdin)) printf("%c\n", find_first_nonrepeating_letter(buffer)); return (EXIT_SUCCESS); } /*------------------------------------------------------------------------------ * vim: sts=4 sw=4 ts=8 ft=c **----------------------------------------------------------------------------*/