Below is the complete working example for string reverse fuction in C programming language.
#include<stdio.h> #include<string.h> //strrev function using arrays void str_rev_arry(char *str) { int len = strlen(str); int i=0,j=len-1; for(i=0;i<len/2;i++,j--) { char temp = str[i]; str[i] = str[j]; str[j] = temp; } } //strrev function using pointers void str_rev_ptr(char *str) { int len = strlen(str); int i; char *begin, *end; begin = str; end = str+len-1; for(i=0;i<len/2;i++) { char temp = *begin; *begin = *end;; *end = temp; begin++; end--; } } //strrev function using recursion void str_rev_rec(char *str, int begin, int end) { char temp; if(begin>=end) return; temp = *(str+begin); *(str+begin) = *(str+end); *(str+end) = temp; str_rev_rec(str, ++begin, --end); } main() { char str[]="Hello string"; int len,begin,end,choice; printf("Enter the String which is to be reversed\n"); printf("1. Using Arrays\n2. Using Pointers\n3. Using Recursion\n4. Exit\n"); printf("Enter the method choice\n"); scanf("%d",&choice); switch(choice) { case 1: printf("before reverse the string is '%s'\n",str); str_rev_arry(str); printf("after reverse the string is '%s'\n",str); break; case 2: printf("before reverse the string is '%s'\n",str); str_rev_ptr(str); printf("after reverse the string is '%s'\n",str); break; case 3: len = strlen(str); begin = 0; end = len-1; printf("before reverse the string is '%s'\n",str); str_rev_rec(str,begin,end); printf("after reverse the string is '%s'\n",str); break; default: printf("wrong choice\n"); break; } }
No comments:
Post a Comment