### Program 86:To know whether the given string is Palindrome or not

Program 86:

#include<stdio.h>
#include<string.h>
main()
{
int i,j=0;
char str1[100],str2[100]={0};
printf("Enter a string to know whether it is palindrome or not\n");
gets(str1);
for(i=strlen(str1)-1;i>=0;i--)
{
str2[j]=str1[i];
j++;
}
str2[j]='\0';
printf("The reverse of the given string is---> %s\n",str2);
if(strcmp(str1,str2)==0)
{
printf("The given string is Palindrome\n");
}
else
{
printf("The given string is Not Palindrome\n");
}
}
Explanation:

1. This program starts with initializing :
• i,j → used as helping variable
• str1 → To store input from user
• str2 → To store output of program
2. printf("Enter a string to know whether it is palindrome or not\n");
gets(str1);
Taking input from user
3. for(i=strlen(str1)-1;i>=0;i--)
{
str2[j]=str1[i];
j++;
}
• Lets take string example LOL.
• Iteration 1: i=strlen(str1)-1→3-1→i=2 ;2>=0 so loop is executed.j=0
• str2[j]=str1[i]→str2[0]=str1[0]→str2[0]=L
• j++→j=1
• i-- →i=1
• Iteration 2:1>=0 so loop is executed.
• str2[j]=str1[i]→str2[1]=str1[1]→str2[1]=O
• j++→j=2
• i--→i=0
• Iteration 3:0>=0 so loop is executed.
• str2[j]=str1[i]→str2[2]=str1[0]→str2[2]=L
• j++→j=3
• i--→i=-1
• Iteration 4:-1 is not greater than or equal to 0 so loop is terminated.
•  str2[j]='\0' To indicated the end of the string
4. if(strcmp(str1,str2)==0)
{
printf("The given string is Palindrome\n");
}
else
{
printf("The given string is Not Palindrome\n");
}
compares str1 and str2 where str1=LOL and str2=LOL so strcmp(str1,str2) returns 0 which is equal to 0  so the if part is executed where it prints The given string is Palindrome
Output: