Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

How to reverse a string

Posted on 2003-12-04
13
Medium Priority
?
288 Views
Last Modified: 2010-04-01
I have the following codes:

...
...
string line("this is a test");
...
...

how can I reverse this string line?

P.S.:
No c-function such as strrev().
0
Comment
Question by:chenwei
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
13 Comments
 
LVL 1

Expert Comment

by:Hoegje
ID: 9874102
Homework maybe ?

How do you do something like that ? Think a bit for yourself. Take small steps at a time.. There are several ways to do this, so pick any of them..
0
 
LVL 17

Expert Comment

by:rstaveley
ID: 9874270
You might consider reverse iterators (rbegin() and rend()). Enough said, assuming this is HW.
0
 
LVL 7

Expert Comment

by:kohashi
ID: 9874647
This sounds like homework so I will provide psuedo code to do it an easy fashion:

get initial string length
create a string of the same length
run a loop that counts down from length to zero
inside the loop place the original string[x] (assuming x is the decrementing variable) inside of newstring[length-x]

once the loop completes, you will have your string in reverse.  You may need to make it length-x-1 or add one and other such minute changes to make sure you dont exceed the allotted space and it gets put in the proper place.

hope that helps,
-kohashi
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 8

Expert Comment

by:mnashadka
ID: 9874883
There's also a reverse function in STL.  This will work on string iterators.
0
 
LVL 1

Expert Comment

by:skp23
ID: 9878783
You don't really need the new string.
You can simply swap the first and last, then the next pair and so on.
0
 
LVL 1

Expert Comment

by:zania22
ID: 9880147
here is the code;

string line("this is a test");

//get the length of the string
int length = line.length();

//just print out backwards with a for loop
int i;
for(i=length-1;i>=0;i--){
    cout<<line[i];
}

cout<<endl;

good luck!
-zania22

0
 
LVL 17

Expert Comment

by:rstaveley
ID: 9881157
zania22, you just did what Hoegje, rstaveley, kohashi, mnashadka, skp23 and many other EE members, who refrained from commenting, carefully avoided doing. Woops.
0
 

Expert Comment

by:t_chinhoe
ID: 9881295
May be chenwei can use other methods doing it... like recursive
0
 
LVL 2

Accepted Solution

by:
xssass earned 80 total points
ID: 9956786
the loop of zania22 is all right, but if it is a C++ style String, it starts counting from 1.

So it should be:

#include <string.h>
#include <iostream.h>

String line="This is a testline";

for (int i=line.Length(); i>=1; i--){
  cout << line[i];
}
cout << endl;
0
 

Author Comment

by:chenwei
ID: 9956946
Thanks for the info from all sites. But truely to say, the method you gave me is not bad but is a very normal one which can be found out everywhere.

Originally what I want is to look for a simple function such as strrev() in C.

0
 
LVL 17

Expert Comment

by:rstaveley
ID: 9957029
Here's the reverse iterators:
--------8<--------
#include <iostream>
#include <string>

int main()
{
      std::string test("this is a test");
      std::string reversed_test(test.rbegin(),test.rend());
      std::cout << reversed_test << '\n';
}
--------8<--------
I don't expect that it will score you points in a homework assignment, though. They's be more likely to be looking for loops etc.
0
 
LVL 8

Expert Comment

by:mnashadka
ID: 9957036
reverse is found in <algorithm>
0
 
LVL 17

Expert Comment

by:rstaveley
ID: 9957042
> They's

They'd

[Nearly mis-typed that the same way in my correction too. Must push my keyboard to the left a bit.]
0

Featured Post

New benefit for Premium Members - Upgrade now!

Ready to get started with anonymous questions today? It's easy! Learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the first in a series of articles about the C/C++ Visual Studio Express debugger.  It provides a quick start guide in using the debugger. Part 2 focuses on additional topics in breakpoints.  Lastly, Part 3 focuses on th…
Introduction This article is a continuation of the C/C++ Visual Studio Express debugger series. Part 1 provided a quick start guide in using the debugger. Part 2 focused on additional topics in breakpoints. As your assignments become a little more …
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question