Using C language recursive and non recursive implementation of string reversal function char *reverse of char * STR method

  • 2020-04-02 00:49:57
  • OfStack

The code is as follows:


//Recursive implementation of string inversion & NBSP; & have spent
char *reverse(char *str)   
{   
 if( !str )   
 {   
  return NULL;
 }   

    int len = strlen(str);   
    if( len > 1 )   
    {   
        char ctemp =str[0];   
        str[0] = str[len-1];      
        str[len-1] = '/0';//The last character is no longer processed on the next recursion & PI; & have spent
        reverse(str+1); //Recursive call & NBSP; & have spent
        str[len-1] = ctemp;   
    }   

    return str;   
}
//Non-recursive string inversion
char *reverse(char *str)   
{   
 if( !str )   
 {   
  return NULL;
 }   

    int len = strlen(str);   
    char temp;   
    for( int i = 0; i < len / 2; i++ )   
    {   
        //Swap the character & PI before and after the two corresponding positions; & have spent
        temp = *(str + i);   
        *(str + i) = *(str + len - 1 - i);   
        *(str + len - 1 - i) = temp;   
    }   

    return str;   
}
int _tmain(int argc, _TCHAR* argv[])
{
 char src[] = {"abcdef"};
 char *pdest = reverse(src);
 getchar();
 return 0;
}


Related articles: