What’s Upword?

Let’s call a word an "upword" if its letters are alphabetically sorted, case-insensitively, left to right. By this definition, Begins is an upword because B comes before e, which comes before g, which comes before i, which comes before n, which comes before s. So too is billow (as ll does not violate this definition), but test is not because t does not come before e alphabetically.

Answer the below in upword.txt.


  1. (1 point.) Is forty an upword?

  2. (1 point.) Is fifty an upword?

  3. (6 points.) Complete the implementation of upword, below, in such a way that it returns true if and only if word is an upword. Return false if word is NULL, if word contains one or more non-alphabetical characters, or if the letters in word are not alphabetically sorted, case-insensitively.

#include <ctype.h>
#include <stdbool.h>
#include <stdio.h>
#include <string.h>

bool upword(const char *word)


  1. Which resources, if any, did you find helpful in answering this problem’s questions?

  2. About how long did you spend on this problem’s questions?