Tuesday, January 19, 2016

Exercise 1.2 - Experiment with printf

Exercise 1.2 - Experiment with printf


Question

Experiment to find out what happens when prints’s argument string contains c, where c is some character not listed above.

Solution

/* Experiment to find out what happens when prints's argument string contains \c, where c is some
character not listed above. */

#include<stdio.h>
int main(void)
{
    printf("a:\a"); /* valid */
    printf("b:\b"); /* valid */
    printf("c:\c");
    printf("d:\d");
    printf("e:\e"); /* valid */
    printf("f:\f"); /* valid */
    printf("g:\g");
    printf("h:\h");
    printf("i:\i");
    printf("j:\j");
    printf("k:\k");
    printf("l:\l");
    printf("m:\m");
    printf("n:\n"); /* valid */
    printf("o:\o");
    printf("p:\p");
    printf("q:\q");
    printf("r:\r"); /* valid */
    printf("s:\s");
    printf("t:\t"); /* valid */
    /*
    * \u below stands for unicode.
    * warning: universal character names are only valid in C++ and C99
    * without anything it will give the error incomplete universal character.
    * we will give 2603 unicode codepoint which stands for snowman
    */
    printf("u:\u2603"); /* valid */
    printf("v:\v"); /* valid */
    printf("w:\w");
    /* \x is for hexadecimals. It should be followed by valid hexadecimal.
     * Lets give D as hexadecimal value */
    printf("x:\xD"); /* valid */
    printf("y:\y");
    printf("z:\z");
    printf("A:\A");
    printf("B:\B");
    printf("C:\C");
    printf("D:\D");
    printf("E:\E"); /* valid */
    printf("F:\F");
    printf("G:\G");
    printf("H:\H");
    printf("I:\I");
    printf("J:\J");
    printf("K:\K");
    printf("L:\L");
    printf("M:\M");
    printf("N:\N");
    printf("O:\O");
    printf("P:\P");
    printf("Q:\Q");
    printf("R:\R");
    printf("S:\S");
    printf("T:\R");

    /*
    * \U below stands for unicode.
    * error: incomplete universal character name \U
    * without anything it will give the error incomplete universal character.
    * we will give 2603 unicode codepoint which stands for snowman
    */

    printf("U:\U00002603");
    printf("V:\V");
    printf("W:\W");
    printf("X:\X");
    printf("Y:\Y");
    printf("Z:\Z");
    printf("0:\0");
    printf("1:\1"); /* valid */+
    printf("2:\2"); /* valid */
    printf("3:\3"); /* valid */
    printf("4:\4"); /* valid */
    printf("5:\5"); /* valid */
    printf("6:\6"); /* valid */
    printf("7:\7"); /* valid */
    printf("8:\8");
    printf("9:\9");
    printf("~:\~");
    printf("`:\`");
    printf("!:\!");
    printf("@:\@");
    printf("#:\#");
    printf("$:\$");
    printf("%:\%"); /* warning: unknown conversion type character in : in format. Spurious trailing % in format */
    printf("^:\^"); /* warning: unknown escape sequence \^ */
    printf("&:\&");
    printf("*:\*");
    printf("(:\("); /* valid */
    printf("):\)");
    printf("_:\_");
    printf("-:\-");
    printf("+:\+");
    printf("{:\{"); /* valid */
    printf("[:\["); /* valid */
    printf("}:\}");
    printf("]:\]");
    printf("|:\|");
    printf("\:\\");
    printf("a:\a"); /* valid */
    printf("::\:");
    printf(";:\;");
    /* escape the double-quotes */
    printf("\":\""); /* valid */
    printf("':\'"); /* valid */
    printf("<:\<");
    printf(",:\,");
    printf(">:\>");
    printf(".:\.");
    printf("?:\?"); /* valid */
    printf("/:\/");
}

No comments:

Post a Comment