# C PROGRAMS
String in C
➤ Read Display String in C
➤ 2D Array of Strings in C
➤ Find Length of String
➤ Copy Two Strings in C
➤ Concatenate Two Strings
➤ Compare two strings
➤ Reverse a String in C
➤ Palindrome string in C
➤ Uppercase to Lowercase
➤ Lowercase to Uppercase
➤ Remove all characters in String except alphabet
➤ Find Frequency of Characters
➤ Count Number of Words
➤ Count lines, words, & characters
➤ Count Vowel, Consonant, Digit, Space, Special Character
➤ String Pattern in C
➤ Copy Input to Output
Here we will write a C program to find the reverse of a String. The Reverse of String “I am Learning” becomes “gninraeL ma I”.
Reverse a string in C using strrev() function
This function is used to reverse the given string. The reversed string will be placed at the same location. The function strrev() is defined in “string.h”
// reverse of the string
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
printf("Enter string: ");
fgets(str, sizeof(str), stdin);
strrev(str);
printf("The reverse of the string is: ");
puts(str);
return 0;
}
Output:-
Enter string: Programming
The reverse of the string is:
gnimmargorP
In the above program, we take input from the user using fgets() function, we can use gets() function also. See more:- Different ways to read and write String in C
Then the string is reversed by a predefined function strrev(). Finally, the output is the display. Note that if you are working in the Linux environment then you should know that the strrev() function is not present in the GCC compiler in Linux. You need to make your own function to reverse the string.
Reverse a String in C without using String Manipulation Library functions
In the previous program to reverse a string in C using strrev(), we used a pre-defined String manipulation function strrev(). But now, let us develop another program without using any string manipulation library functions.
Procedure to find reverse of string in C without using the pre-defined function,
1) Find the length of the string.
2) Iterate through the string using loop
3) Swap first and last index characters and so on till the middle of the string.
4) Display the string.
Example:- If the String = “know” then the character ‘k’ will be swapped with character ‘w’, and character ‘n’ will be swapped with the character ‘o’.
#include<stdio.h>
int main()
{
char str[100];
int len, i, j;
char ch;
// read string
printf("Enter a string: ");
scanf("%[^\n]",str);
// finding length of string
for(len=0; str[len]!='\0'; len++);
i = len - 1; // actual length by 0 index
// reverse the string
for(int j=0; j < len/2; j++, i--)
{
ch = str[i];
str[i] = str[j];
str[j] = ch;
}
printf("The reverse of the string: %s", str);
return 0;
}
Output:-
Enter a string: KnowProgram
The reverse of the string: margorPwonK
Enter a string: Learn C Programming
The reverse of the string: gnimmargorP C nraeL
Reverse a String in C using Another String
In the previous program, we used the same string to reverse a string in C. But we can also take the help of another string. This approach will be very easy compared to the previous program.
Procedure to reverse a string in C using another String,
1) Find the length of the String.
2) Take a string of appropriate size so that it can store the reverse value.
3) Pick characters from the end of the original string and fill them from the front end of the new String.
4) Insert the ‘\0’ character at the end of the new string.
5) Display the new string.
#include<stdio.h>
int main()
{
char ch[50], a[50], i=-1, j=0;
printf("Enter the string: ");
scanf("%[^\n]",ch);
printf("Reverse is: ");
// finding legth of string
// and storing it in variable i
while(ch[++i]!='\0');
// copy the string
while(i>=0)
{
a[j++]=ch[--i];
}
a[j++]='\0';
puts(a);
return 0;
}
Output:-
Enter the string: awesome
Reverse is: emosewa
Displaying in Reverse Order
#include<stdio.h>
#include<string.h>
int main()
{
char ch[50];
int i;
printf("Enter the string: ");
scanf("%[^\n]",ch);
// finding Length of string
// and storing it into the variable i
for(i=0; ch[i]!='\0'; i++);
printf("Reverse is: ");
for(i--; i>=0; i--)
{
printf("%c",ch[i]);
}
return 0;
}
Output:-
Enter the string: COMPUTER CORNER
Reverse is: RENROC RETUPMOC
It is not the correct way to reverse the string. In this program, we find the last index (length) of the string, and then from last, it is displayed.
Reverse a String in C using Recursion
#include<stdio.h>
void reverse()
{
char c;
scanf("%c",&c);
if(c!='\n')
{
reverse();
printf("%c",c);
}
}
int main()
{
printf("Enter a Sentence: ");
reverse();
return 0;
}
Output:-
Enter a Sentence: renroC retupmoC
Computer Corner
If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or do you find anything incorrect? Let us know in the comments. Thank you!