String reverse


 
Thread Tools Search this Thread
Top Forums Programming String reverse
# 1  
Old 02-08-2011
String reverse

Hi all,
I jus wanna print string b after reversing it. but the out put is blank. My code snippet is below. Smilie
Code:
int main()
{
  char * a, * b;
  b = new char;
  a = new char;
  int len, le;
  le = 0;
  cout<< " enter your string \n";
  cin>> a;
  len = strlen(a);
  for(int i = len-1; i>=0 ; i--)
  {
    le = len - i;
    b[le]= a[i];
  }

  cout<< endl << b;
  return 0;
}


Last edited by Scott; 02-08-2011 at 04:47 AM.. Reason: Please use code tags
# 2  
Old 02-08-2011
It's a while ago for me, but it should be something like:
Code:
int main()
{
  char * a, * b;
  b = new char[64];	// allocate enough memory for the variables
  a = new char[64];
  int len, le;
  le = 0;
  cout<< " enter your string \n";
  cin>> a;
  len = strlen(a) - 1;
  
  while(a[le]) {
    b[le]=a[len];
    le++;
    len--;
  }

  b[le] = '\0';		// Terminate the string

  cout<< endl << b;
  return 0;
}

# 3  
Old 02-08-2011
Easy way, using recursion:

Code:
#include <stdio.h>
void reverse( char *str )
{
    if ( '\0' == *str )
    {
        return;
    }
    reverse( str + 1 );
    printf( "%c", *str );
    return;
}

int main( int argc, char **argv )
{
    for ( int ii = 0; ii < argc; ii++ )
    {
        reverse( argv[ ii ] );
        printf( "\n" );
    }
}

# 4  
Old 02-08-2011
Ancient version from Knuth:
Code:
char *
strrev(char *src)
{
   char *p=src;
   char *q=strchr(src,'\0');
   for(q--; q>p; q--,p++)
   {
      char tmp=*q;
      *q=*p;
      *p=tmp;
   }
   return src;
}

# 5  
Old 02-08-2011
Hi.

From K & R, reverse in-place:
Code:
#!/usr/bin/env bash

# @(#) s1	Demonstrate K & R string reversal in-place.

# Utility functions: print-as-echo, print-line-with-visual-space.
pe() { for i;do printf "%s" "$i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }

pl " Source:"
cat hi.c

pl " Compile, link, run results:"
rm -f hi
make hi
./hi

exit 0

producing:
Code:
% ./s1

-----
 Source:
#include <stdio.h>

int
main ()
{
  char s[] = "Hello, world.";
  void reverse ();
  printf ("%s\n", s);
  reverse (s);
  printf ("%s\n", s);
  return (0);
}

/* K & R, Page 62 */

#include <string.h>

void
reverse (char s[])
{
  char c;
  int i, j;
  for (i = 0, j = strlen (s) - 1; i < j; i++, j--)
    {
      c = s[i];
      s[i] = s[j];
      s[j] = c;
    }
}

-----
 Compile, link, run results:
cc     hi.c   -o hi
Hello, world.
.dlrow ,olleH

Best wishes ... cheers, drl
# 6  
Old 02-18-2011
Quote:
Originally Posted by achenle
Easy way, using recursion:

Code:
#include <stdio.h>
void reverse( char *str )
{
    if ( '\0' == *str )
    {
        return;
    }
    reverse( str + 1 );
    printf( "%c", *str );
    return;
}

int main( int argc, char **argv )
{
    for ( int ii = 0; ii < argc; ii++ )
    {
        reverse( argv[ ii ] );
        printf( "\n" );
    }
}

Hi Smilie, I'm wondering if this recursive call of reversre ( ... ) wouldn't cause stack overflow?
# 7  
Old 02-18-2011
Quote:
Originally Posted by pharaoh
Hi Smilie, I'm wondering if this recursive call of reversre ( ... ) wouldn't cause stack overflow?
Note how it limits itself: Every time it calls itself again, it does so on a string one character shorter: reverse(str+1) ...and when it gets a string of zero length, it doesn't call itself at all: f ( '\0' == *str ) return;

So it wouldn't overflow the stack unless you had a string long enough to actually fill the stack with function calls.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to cut part of a string in reverse?

Hi, how to cut part of a string sing delimiter in reverse input file 1,2,st-pa-tr-01,2,3,4, 2,3,ff-ht-05,6,7,8 how can i obtain strings till st-pa-tr ff-ht i.e cutting the last part og string -01 and -05 Thanks & Regards Nivi edit by bakunin: changed thread title (typo) (3 Replies)
Discussion started by: nivI
3 Replies

2. Shell Programming and Scripting

awk reverse string

Hello, Can anyone explain for me in this script to reverse the string? 1) the "x=x" part, how it works? $ echo welcome | awk '{ for(i=length;i!=0;i--)x=x substr($0,i,1);}END{print x}' $ emoclew2) x seems to be an array at the END, but can it automatically print the whole array in awk? Thanks... (8 Replies)
Discussion started by: yifangt
8 Replies

3. Shell Programming and Scripting

To reverse a string

Hi All, I would like to know , how to reverse a given string example : Hi how are you Required Output: you are how HiThanks (7 Replies)
Discussion started by: santhoshks
7 Replies

4. Shell Programming and Scripting

Reverse of a string

Hi All, I have a String str="Manish". I would like to reverse it. I know the option to do this in bash is: echo "Manish" | rev but I have seen an alternate solution somewhere, which states that: str="Manish" echo $str | awk '{ for(i=length($0);i>=1;i--) printf("%s",substr($0,i,1));... (7 Replies)
Discussion started by: manishdivs
7 Replies

5. Shell Programming and Scripting

reverse string matching

Guys, I am trying to find a way to achieve this. I need to print /usr/local/apche/htdocs only from the string /usr/local/apache/htdocs/file.php using the regex. The below did not work. I know a solution with normal cut, I need a way to do this with the awk regex. awk '/+file.php/' (6 Replies)
Discussion started by: anilcliff
6 Replies

6. Shell Programming and Scripting

reverse a string based on else

I have a file like this: Dog Cat One ABCDEFGHIJ house Dog Cat Two ABCDEFGHIJ house Cat Cat One ABCDEFGHIJ house Cat Cat Two ABCDEFGHIJ house I want to look at $3 and if it says "Two" print out the line except reverse $4. Dog Cat One ABCDEFGHIJ house Dog Cat Two JIHGFEDCBA house ... (3 Replies)
Discussion started by: dcfargo
3 Replies

7. Shell Programming and Scripting

PerL Reverse the string.

Hi, I am very new to perl. My question: How i can reverse the given string using substr function but without using reverse function in perl? Anybody please help. thanks, -Lalit (3 Replies)
Discussion started by: email-lalit
3 Replies

8. Filesystems, Disks and Memory

shell program to reverse the string

pls help me in getting that program (1 Reply)
Discussion started by: saikiran
1 Replies

9. Shell Programming and Scripting

reverse string manipulation

How to get the reverse parsing work. I have a strings like aqw-wef-324-err.log wefd-324r-err.log efrt-4rfr.log . . i want to have string upto last hypen. aqw-wef-324 wefd-324r ... (1 Reply)
Discussion started by: senthilk615
1 Replies

10. Shell Programming and Scripting

string in reverse

Can we print any string in reverse order? For example: oracle 16294 1 0 Aug 11 ? 0:00 ora_reco_crepd oracle 16276 1 0 Aug 11 ? 0:19 ora_dbw0_crepd I need second last column from this output. (0:00 & 0:19). I can use awk print $2 after reversing the string. ... (4 Replies)
Discussion started by: malaymaru
4 Replies
Login or Register to Ask a Question