w3resource

C Programming: Print individual characters of string in reverse order

C String: Exercise-4 with Solution

Write a program in C to print individual characters of string in reverse order.

C Programming: Print individual characters of string in reverse order

Sample Solution:

C Code:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void main()
{
    char str[100]; /* Declares a string of size 100 */
    int l,i;
	
       printf("\n\nPrint individual characters of string in reverse order :\n");
       printf("------------------------------------------------------\n"); 	
       printf("Input the string : ");
       fgets(str, sizeof str, stdin);
	   l=strlen(str);
	   printf("The characters of the string in reverse are : \n");
       for(i=l;i>=0;i--)
        {
          printf("%c  ", str[i]);
        }
    printf("\n");
}

The program can also be written as below:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void main()
{
    char str[100]; /* Declares a string of size 100 */
    int l=0;
	
       printf("\n\nPrint individual characters of string in reverse order :\n");
       printf("------------------------------------------------------\n"); 	
       printf("Input the string : ");
       fgets(str, sizeof str, stdin);
	   l=strlen(str);
	   printf("The characters of the string in reverse are : \n");
       for(str[l]='\0';l>=0;l--)
        {
          printf("%c  ", str[l]);
        }
    printf("\n");
}

Sample Output:

Print individual characters of string in reverse order :                                                      
-----------------------------------------------------------                                                   
Input the string : w3resource.com                                                                             
The characters of the string in reverse are :                                                                 
                                                                                                              
  m  o  c  .  e  c  r  u  o  s  e  r  3  w 

Flowchart :

Flowchart: Print individual characters of string in reverse order

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a program in C to separate the individual characters from a string.
Next: Write a program in C to count the total number of words in a string.

What is the difficulty level of this exercise?



C Programming: Tips of the Day

Why doesn't the compiler report a missing semicolon?

C is a free-form language. That means you could format it in many ways and it will still be a legal program.

a = b * c;

could be written like

a=b*c;

or like

a
=
b
*
c
;

So when the compiler see the lines:

temp = *a
*a = *b;
it thinks it means
temp = *a * a = *b;

That is of course not a valid expression and the compiler will complain about that instead of the missing semicolon. The reason it's not valid is because a is a pointer to a structure, so *a * a is trying to multiply a structure instance (*a) with a pointer to a structure (a).

While the compiler can't detect the missing semicolon, it also reports the totally unrelated error on the wrong line. This is important to notice because no matter how much you look at the line where the error is reported, there is no error there. Sometimes problems like this will need you to look at previous lines to see if they are okay and without errors.

Sometimes you even have to look in another file to find the error. For example if a header file is defining a structure the last it does in the header file, and the semicolon terminating the structure is missing, then the error will not be in the header file but in the file that includes the header file.

And sometimes it gets even worse: if you include two (or more) header files, and the first one contains an incomplete declaration, most probably the syntax error will be indicated in the second header file.

Ref : https://bit.ly/3fO0uGw