I am currently studying c programming, but I'm at a very basic level. So for practice I made a program that reads a string and inverts it. I want to know if the code is readable and how I can improve it. /* * Goal: Given a string, invert it, then print the result. * Author: Lúcio Cardoso */ #include <stdio.h> #include <string.h> /*This is the size of the arrays in this program. It's better to use a constant, because makes easier to modify the arrays' size, if needed.*/ #define NUM 200 void invert(char *s) //Fucntion responsible for inverting the string. { char aux[NUM]; int i, j, n; //These variables are all used to control the for loops. /*This loop will read the size of the array's string, that's why strlen(s) - 1 is used. We don't need to read all contents from the array, just the string. As we read the s[] backwards, its content is stored in aux[n]. In this case, from zero to the size of s[]'s string - 1. Minus 1 is used because we read it from ZERO, not i. */ for (i = strlen(s) - 1, n = 0; n < strlen(s), i >= 0; i--, n++) { aux[n] = s[i]; } printf("Included with the super mojo from the string inverter, "); printf("this is the result: "); //This for loop reads all the content from the aux array, and print it. for (j = 0; j < strlen(s); j++) { printf("%c", aux[j]); } } int main(void) { char string[NUM]; printf("\nWelcome to the super, duper string inverter!\n"); printf("If you want to see some magic, enter a string:\n>"); gets(string); //Reads the string. //Now, we only need to call the function with string[] as a parameter. invert(string); return 0; }