Demo entry 6359033

derpyd

   

Submitted by anonymous on Apr 27, 2017 at 11:52
Language: C. Code size: 1.0 kB.

#include <stdio.h>
#include <string.h> /* strchr */

/* The C Programming Language: 2nd Edition
 *
 * Exercise 7-9: Functions like `isupper` can be implemented to save space
 * or to save time. Explore both possibilities.
 *
 * Notes: I'm not really sure what they're expecting here. Assuming standard
 * ASCII, the only uppercase characters are A-Z, and they're all sequential.
 * Both ways to check seem very lean on necessary resources; I'm unaware of
 * other methods.
 */

int isupper_small(int c) {
	return (c >= 'A' && c <= 'Z');
}

int isupper_fast(int c) {
	return (strchr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", c) != NULL);
}

int main(int argc, char **argv) {
	int c = 'S';
	/* The inline conditional makes things more "human-friendly". */
	printf("is '%c' uppercase? %c\n", c, isupper_fast(c) ? 'y' : 'n');
	c = 'f';
	printf("...what about '%c'? %c\n", c, isupper_small(c) ? 'y' : 'n');
	c = ':';
	printf("Does a colon have an uppercase variant? %c\n", isupper_small(c) ? 'y' : 'n');
	return 0;
}

This snippet took 0.00 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).