AIM: Write a C program that contains a string (char pointer) with the value ‘Hello World’. The program should XOR each character in this string with 0 and displays the result. 

(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:

Let's see the example of declaring string by char array in C language. 

 1. Char ch [9] = {'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd','\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
h e l l o w o r l d \0


While declaring string, size is not mandatory. So, we can write the above code as given below:

char ch [] = {'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd','\0'};

We can also define the string by the string literal in C language. For example:

2. char str[]="helloworld"; 

In such a 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 results of 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:





PROGRAM: 

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int main()

{

char str[]="Hello World";

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");

}


Output: