Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

How to reverse a string

Posted on 2003-12-04
13
Medium Priority
?
290 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
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
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
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

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.

Question has a verified solution.

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

Often, when implementing a feature, you won't know how certain events should be handled at the point where they occur and you'd rather defer to the user of your function or class. For example, a XML parser will extract a tag from the source code, wh…
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…
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.

773 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