EXPERIMENT 1: XOR a string with a Zero
AIM:
Write a C program that contains a string
(char pointer) with a value ‘Hello World’. The program should XOR each
character in this string with 0 and displays the result.
HARDWARE
AND SOFTWARE REQUIREMENT:
1. Intel based Desktop PC: - RAM of
512 MB
2. Turbo C / Borland C
THEORY:
(a) String
The string is the one-dimensional array of characters terminated
by a null ('\0'). Each and every character in the array consumes one byte of
memory, and the last character must always be 0. The termination character
('\0') is used to identify where the string ends. In C language string
declaration can be done in two ways
- By char array
- By string literal
Let's see the example of declaring string by char array in C language.
1.
char ch[17]={'o', 'n', 'l', 'i', 'n', 'e', 's', 'm', 'a', 'r', 't', 't', 'r', 'a', 'i', 'n', 'e', 'r', '\0'};
As we know, array index starts from 0, so it
will be represented as in the figure given below.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
o
|
n
|
l
|
i
|
n
|
e
|
s
|
m
|
a
|
r
|
t
|
t
|
r
|
a
|
i
|
n
|
e
|
r
|
\0
|
While declaring string, size is not mandatory.
So we can write the above code as given below:
char ch[]={'o', 'n', 'l', 'i', 'n', 'e', 's', 'm', 'a', 'r', 't', 't', 'r', 'a', 'i', 'n', 'e', 'r', '\0'};
We can also define the string by the string literal in C language. For
example:
2. char str[]="onlinesmarttrainer";
In such case, '\0' will be appended at the end
of the string by the compiler.
(b) XOR Operation
There are two inputs and one output in binary XOR (exclusive OR)
operation. It is similar to ADD operation which takes two
inputs and produces one result i.e. one output.
The inputs and result to
a binary XOR operation can only be 0 or 1.The binary XOR operation will always
produce a 1 output if either of its
inputs is 1 and will produce a 0 output if both of its
inputs are 0 or 1.
XOR Truth Table
Input
|
Output
|
|
X
|
Y
|
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
SOURCE
CODE:
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
void main()
{
clrscr();
char str[] = "HelloWorld";
char str1[11];
int i, len;
len = strlen(str);
for(i=0;i<len;i++)
{
str1[i]=str[i]^0;
printf("%c", str1[i]);
}
printf("\n");
getch();
}
OUTPUT:
VIVA
QUESTIONS:
- What is XOR
Operation?
- What is String?
This comment has been removed by the author.
ReplyDelete