VB's Left, Right, Mid Functions in C++?

Please support our C++ advertiser: Intel Parallel Studio Home
Closed Thread

Join Date: Sep 2003
Posts: 6
Reputation: Daywalker46410 is an unknown quantity at this point 
Solved Threads: 0
Daywalker46410 Daywalker46410 is offline Offline
Newbie Poster

VB's Left, Right, Mid Functions in C++?

 
0
  #1
Sep 15th, 2003
I apologize up front; I'm a VB Programmer trying to pick up C++. I have a very simple program that takes a string input from the user. How can I look at a specific character in that string? VB has the Left(), Right(), and Mid() Functions. Is there something similar for C++? A sample of my code is below. In this example, how could I have the program return the "T" in "Test String" or the "g" at the end?

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

#using <mscorlib.dll>

using namespace System;
using namespace std;

int _tmain()
{
string strTest;
strTest = "Test String";
cout << strTest;

return 0;
}

Joe Cody
Allied Tube & Conduit
Quick reply to this message  
Join Date: Sep 2003
Posts: 22
Reputation: Mike29936 is an unknown quantity at this point 
Solved Threads: 0
Mike29936 Mike29936 is offline Offline
Newbie Poster

Re: VB's Left, Right, Mid Functions in C++?

 
0
  #2
Sep 15th, 2003
Left could be done by going:

  1.  
  2. char left(char *string) {
  3. return string[0];
  4. }

Right could be done like this:
  1. char right(char *string) {
  2. return string[strlen(string)];
  3. }

I'm no VB programmer, since it's my personal opinion that VB is for idiots, so I don't know what mid() does. If it gets the middle character:

  1. char mid(char *string) {
  2. return string[strlen(string)>>1);
  3. }

Does this help?
Quick reply to this message  
Join Date: Sep 2003
Posts: 81
Reputation: Valmian is an unknown quantity at this point 
Solved Threads: 0
Valmian Valmian is offline Offline
Junior Poster in Training

Re: Re: VB's Left, Right, Mid Functions in C++?

 
0
  #3
Sep 16th, 2003
Originally Posted by Mike29936
I'm no VB programmer, since it's my personal opinion that VB is for idiots, so I don't know what mid() does.
Well this isn't very nice, is it? (although.. i prefer C/C++ myself)
Quick reply to this message  
Join Date: Sep 2003
Posts: 6
Reputation: Daywalker46410 is an unknown quantity at this point 
Solved Threads: 0
Daywalker46410 Daywalker46410 is offline Offline
Newbie Poster
 
0
  #4
Sep 16th, 2003
I'm assuming I create these as functions, but I get an error when calling them.

error C2665: 'std::right' : none of the 2 overloads can convert parameter 1 from type 'std::string'
Quick reply to this message  
Join Date: Sep 2003
Posts: 81
Reputation: Valmian is an unknown quantity at this point 
Solved Threads: 0
Valmian Valmian is offline Offline
Junior Poster in Training

Re: VB's Left, Right, Mid Functions in C++?

 
0
  #5
Sep 16th, 2003
Did you declear the functions? May be there are these functions in reality since std::right would seem as if it thinks it is one of the library functions.. rename them to something like rightc() or smthn..
IIya
Originally Posted by Daywalker46410
I'm assuming I create these as functions, but I get an error when calling them.

error C2665: 'std::right' : none of the 2 overloads can convert parameter 1 from type 'std::string'
Quick reply to this message  
Join Date: Sep 2003
Posts: 22
Reputation: Mike29936 is an unknown quantity at this point 
Solved Threads: 0
Mike29936 Mike29936 is offline Offline
Newbie Poster

Re: VB's Left, Right, Mid Functions in C++?

 
0
  #6
Sep 16th, 2003
none of the 2 overloads can convert parameter 1 from type 'std::string'
It does strings, as in the character arrays. It doesn't do objects.

To get it to work, you have to do something like this:

  1. char *string = "Hello. I am a string";
  2. cout << right(string);

If there actually is a 'right()' function in there somewhere, I believe this will work:

::right(string);
Quick reply to this message  
Join Date: Sep 2003
Posts: 81
Reputation: Valmian is an unknown quantity at this point 
Solved Threads: 0
Valmian Valmian is offline Offline
Junior Poster in Training

Re: Re: VB's Left, Right, Mid Functions in C++?

 
0
  #7
Sep 16th, 2003
I think he was using strings all along..
Originally Posted by Mike29936
It does strings, as in the character arrays. It doesn't do objects.

To get it to work, you have to do something like this:

  1. char *string = "Hello. I am a string";
  2. cout << right(string);

If there actually is a 'right()' function in there somewhere, I believe this will work:

::right(string);
Quick reply to this message  
Join Date: Dec 2003
Posts: 1
Reputation: simprix is an unknown quantity at this point 
Solved Threads: 0
simprix simprix is offline Offline
Newbie Poster

Re: VB's Left, Right, Mid Functions in C++?

 
0
  #8
Dec 1st, 2003
u lot talking about left and right ok BUT i can't get my head around this,

  1. 1 For x = 1 to Len(txtNI.Text)
  2. 2 If Asc(Mid(txtNi,x,1) < 65 or _
  3. 3 Asc(Mid(txtNi,x,1) > 90 Then
  4. .....

I know this, on the first line of the code, Len function is looping and looking at each character in a string that has been entered in txtNi. Then on the second line Asc checks for Ascii characters all fine till here, i don't understand this part..

  1. ...
  2. (Mid(txtNi,x,1) < 65
  3. ...

can anyway explain this plz?
Quick reply to this message  
Join Date: Dec 2003
Posts: 55
Reputation: r0ckbaer is an unknown quantity at this point 
Solved Threads: 6
r0ckbaer r0ckbaer is offline Offline
Junior Poster in Training

Re: VB's Left, Right, Mid Functions in C++?

 
0
  #9
Dec 4th, 2003
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string>
  4.  
  5. #define ONE " via c++ string at() (worx only on 1 char): "
  6. #define MORE " via c++ string substr() (worx on more chars): "
  7.  
  8. using namespace std;
  9.  
  10. int main(void)
  11. {
  12. string test;
  13.  
  14. do
  15. {
  16. cout << "Enter the teststring (6 chars minimum): ";
  17. cin >> test;
  18. }
  19. while (test.size() < 6);
  20.  
  21. /* u could actually use more chars with substr() method than just one
  22.   * for example u could replace the test.substr(0, 1) with test.substr(0, 2)
  23.   * to get 2 chars
  24.   */
  25. cout << "\n\tleft()" << MORE << test.substr(0, 1) << "\n";
  26. cout << "\tleft()" << ONE << test.at(0) << "\n\n";
  27.  
  28. cout << "\tright()" << MORE << test.substr(test.size() - 1, 1) << "\n";
  29. cout << "\tright()" << ONE << test.at(test.size() - 1) << "\n\n";
  30.  
  31. /* here i extracted the 5th char, remember counting in c / c++ begins at 0, not at 1 */
  32. cout << "\tmid()" << MORE << test.substr(4, 1) << "\n";
  33. cout << "\tmid()" << ONE << test.at(4) << "\n\n";
  34.  
  35. system("PAUSE");
  36. return 0;
  37. }

this is actually some source who should illustrate you the use of the c++ string class (which is very handy) in order to simulate the vb functions u asked for, so u dont need your own functions for it, since all is already in c++ :cheesy:
Quick reply to this message  
Join Date: May 2005
Posts: 2
Reputation: dotslashsatan is an unknown quantity at this point 
Solved Threads: 0
dotslashsatan dotslashsatan is offline Offline
Newbie Poster

Re: VB's Left, Right, Mid Functions in C++?

 
0
  #10
May 1st, 2005
memcpy(out,in,len); is alot faster and more efficient seeing as you're using pointers anyway
Quick reply to this message  
Closed Thread

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the C++ Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC