We shall reverse the string in situ, without using an additional string. The implementation for this function is:
/** * Description: * Reverses the received string. * Parameters: * string - a pointer to the string who will be reversed * Returns: * A pointer to the reversed string. * Postconditions: * The "original" string who is sent will be reversed. */ char* String_Reverse(char *string) { size_t last; int i; char swap; if(string!=NULL) { /*Computes the location of the last character*/ last = strlen(string)-1; /*Itterates through the first half of the string*/ for(i=0; i<(last/2); i++) { /*Swaps the first character with the last and so on*/ swap = string[i]; string[i] = string[last-i-1]; string[last-i-1] = swap; } } return string; }Here's an example on how to use the function:
#include<stdio.h> #include<stdlib.h> #include<string.h> char* String_Reverse(char *string); int main(void) { char string[] = "The simple pleasures are the last refuge of complex men"; printf("Original string: %s\n", string); String_Reverse(string); printf("Reversed string: %s\n", string); return 0; } /*Output: Original string: The simple pleasures are the last refuge of complex men Reversed string: nem xelpmoc fo egufer tsal eht era serusaelp elpmis ehT */
No comments:
Post a Comment
Got a question regarding something in the article? Leave me a comment and I will get back at you as soon as I can!