// Illustrates:
//      printing the decimal value of a character
//      printing the hexadecimal value of a character: %x
//      strings are zero-terminated
//
// Compile: gcc decimalstrings.c
// Run: a.out
// Optional Compile: gcc -o decimalstrings decimalstrings.c
// Optional Run: decimalstrings

#include <stdio.h>

int main()
{

    char aStr[] = "ABC";

    printf("String variable: '%s'\n", aStr);

    int i;
    for (i=0; i < 3; i++)
    {
        // Print each character twice,
        //      first as a number, then as a character
        printf("Character %d, decimal and character: %d, '%c'\n",
                i, aStr[i], aStr[i]);
    }
    printf("\n");  // Print a blank line

    // Print FOUR characters, and print hexadecimal value also
    for (i=0; i < 4; i++)
    {
        // Print each character three times
        printf("Character %d, decimal, hex, and character: %d, %x, '%c'\n",
                i, aStr[i], aStr[i], aStr[i]);
    }
    
}

/* Output:
String variable: 'ABC'
Character 0, decimal and character: 65, 'A'
Character 1, decimal and character: 66, 'B'
Character 2, decimal and character: 67, 'C'

Character 0, decimal, hex, and character: 65, 41, 'A'
Character 1, decimal, hex, and character: 66, 42, 'B'
Character 2, decimal, hex, and character: 67, 43, 'C'
Character 3, decimal, hex, and character: 0, 0, '^@'
*/