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.

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
  1. By char array
  2. 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 ORoperation. 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:

  1. What is XOR Operation?
  2. What is String?

Comments

Search related post on google