Escape Sequence | Formatted Printing | Interview Questions

Escape sequence

Escape sequence are some non-printable character that shows the effect while printing the output. The usage and example of escape sequence are given below.

These are the combination of two characters backslash(\) and one more character but treated as a single character occupy only one byte as other characters.

Escape Sequence Character Meaning Usage
\a Bell alert Used to make a sound.
\b backspace Used to move the cursor to the one character back.
\n newline Used to change the line
\r Carriage Return Used to move the cursor to the beginning of the current line.
\" Double Quotes Used to print the double quotes
\' Single Quotes Used to print the single quotes
\f Form feed Used to change the page
\t tab Used to print the tab

Program to demonstrate the use of escape sequence

#include<stdio.h>
int main()
{
  printf("Hello\a\a");
 printf("Hello\nworld\n");
 printf("Hello\tWorld\n");
  printf("Hello\"Alex \"\n");
  printf("Hello \'Clark\'\n");
  printf("Hello\bboy\n");
  printf("Hello\rJk\n");
  return 0; 
} 

Output

HelloHello
world
Hello   World
Hello"Alex "
Hello 'Clark'
Hellboy
Jkllo

More Controlled Printing in C

We use the printf() function for printing till now. But print() function have many variation as given below.

Integer formatted printing

printf("%wd",variable);

Syntax Explained

In the above syntax w stands for white spaces. For print, the given integer variables value, w spaces are reserved and the number is print by right aligned on the given spaces. If the w is less the number, then the specified width is ignored. Read the following example to understand the fact.

int a=512;
printf("%d",a);//512
printf("%5d",a);//__512
printf("%2d",a);//512
printf("%-5d",a);//512__

Syntax for printing floating point numbers

printf("%w.pf",variable);

Syntax Explained

In the above example w stands for the total width reserved for the printing including decimal places and p specifies how many digits(precision) are allowed after decimal point.Read the following example to understand the fact.By default 6 digit precision is allowed for float printing.

float f=5.6789;
printf("%f",f);//5.678900
printf("%10f",f);//__5.678900, two blank spaces
printf("%-10f",f);//5.678900__
printf("%-10.2f",f);//5.68______, round off the decimal places if truncation is performed.
printf("3.2f",f);//5.68

Type conversion using formatted printing

If you want to print the decimal number into octal, hexadecimal then this task can be done directly by using the format specifier explained in the following example.

printf("%d",25);//25
printf("%o",25);//31, octal equivalent of decimal 25.
printf("%x",25);//19, hexadecimal equivalent of decimal 25.

If an integer constant is prefixed with zero(0) then constant is called octal constant or if prefixed with (zero-x)0x then constant is called hexadecimal constant.
printf("%d",031);//print 25,031 is an octal integer and 25 is decimal equivalent of oct-31
printf("%d",0x19);//print 25, 0x19 is hexadecimal constant and 25 is decimal equivalent of hex-19.

Note: %i can be also used for the decimal integer printing.

Some Conditional operators tips

int i=5;
if(i=3)
	printf("Hello");
else
	printf("Bye");

//output: print "Hello"

In the above example, if you think that output should be "Bye" so you are absolutely wrong. The reason is within the if i=3 initialize the "i" with 3. It doesn't compare "i" with 3. So within the if "i" becomes 3 and statement is converted if(i)=>if(3). Because any non-zero value is considered as true so print "Hello".

int i=5;
if(i>10)
    printf("Hello");
    printf("World");
else
    printf("Out");

This program snippet will complain about the compile-time error. The is generally known as misplaced else.

In the above program snippet the if contains multiple statements but no brackets are used to enclose multiple statements in a group.

The reason for the error is what else is a counterpart of the if so it must appear just after the if. but if no brackets are used to make the if block so "if ends with the first statement written after it and then one more statement occurs and then else appears which break the direct link of else with it.

The solution of the above problem is that just make a block of the statement written after the if so else will appear just after the if block.

int i=5;
if(i<10);
	printf("Hello");
else
	printf("Bye");

This program snippet will complain the compile-time error because there is a semicolon after the if and if ends with a semicolon and then one more statement is written without enclosing them in a block. This problem is much similar to the above problem. Here semicolon(;) is also a statement called null statement.


int i=5;
if(i<10)
	printf("Hello");
else;
	printf("Out");

//output: HelloOut

The semicolon just after the else is perfectly alright. This semicolon ends the else with null statement means if a condition is false the nothing happens. In the above case, it is optional to write the else statement.

Comments

Popular posts from this blog

String in golang

Inline V/S Block Level Element

Arrays in C Language

Data Types in Go language

Printing in C programming

Variable Naming & Scope of Variable

Floating point Data types in Go lang

Overview of Go lang

Literals in Java