Archived

This topic is now archived and is closed to further replies.

VC++ Question

This topic is 6486 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Okay, now I know to MOST of you this is going to sound like a SILLY question, BUT.. how the heck do you declare a "STRING"??? Everything I''ve learned about VC++ is off the tuts and my own digging.. but I''ll be darned if I can figure out why a simple string is such a pain to create. =( Delphi made it SO easy =( Axehandler

Share this post


Link to post
Share on other sites
You can use C Character Arrays.

Or use Standard C++ ''string'' data-type. It is an overloaded class that can allow you to do just about anything with your strings

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
welp, really strings don''t exist unless you
1) use mfc
2) use c++ data type

strings in C are basically arrays of characters. even before delphi oldschool pascal also declared strings as arrays of characters.

char string[30];

Share this post


Link to post
Share on other sites
Here's some stuff that might help you a bit:

In C/C++ strings are character arrays, and the terminator character for the string is '\0' (The NULL character).

For example the character array for the string "Hello!" would be:
'H' 'e' 'l' 'l' 'o' '!' '\0'

Here are some functions that you should look into in the help files:

strcpy - copys one string to another
strlen - gives the length of the string
strcat - concatenates 2 strings

I hope that was helpful and not too confusing. Feel free to send me an email if you need more clarifications, or some example source code on how to use strings.

Jesse Chounard
stinkygoop@crosswinds.net

Edited by - Jesse Chounard on 4/14/00 1:58:36 PM

Share this post


Link to post
Share on other sites
Actually, Delphi forced us to use the char base if you "REALLY" wanted to manipulate the strings. so basicly I can declare an open char array such as.

char MyString[]
Mystring = "Hello all"

then Mystring can simply be my string, course I would think this would be a tad rough on the mem =)

But am I correct here?

Share this post


Link to post
Share on other sites
Okay Guys,

Thanks for the info on the char, works like a charm!

char FPSText[]="test";
KillGLWindow(); // Kill The Window
timer2 = GetTickCount();
fps = frames * 180 / (timer1-timer2);
_itoa( fps, FPSText, 10 );
MessageBox(NULL,FPSText,"Frames Per Second",MB_OK/MB_ICONEXCLAMATION);
return (msg.wParam);

Axehandler

Share this post


Link to post
Share on other sites
Well, typically if you know your string isn''t ever going to change then yes, you can just simply declare your string like:

char *mystring;
mystring ="This is a string"

the problems are that you can''t really modify that string and it''s dangerous to do any changes to it. Really, if you want to make the string flexible you could do something like:

#define MY_MAX_STR_LENGTH 256
char mystring[MY_MAX_STR_LENGTH];
strcpy(mystring,"This is a string");

this way you have set your string to accept anything up to 256 characters. Beware tho as if your string you''re copying or changing exceeds that 256 (or whatever boundary you''ve set) then you will see fireworks (translation: crash).

this stuff is fairly basic so for more information (for dynamic strings that change length, etc) you should read some tutorials on strings, memory allocation and array boundary checking.

Or use MFC''s data-types.. it does all the boundary checking etc, for you.

Hope this helps.

Share this post


Link to post
Share on other sites
AHH.... I see what you mean, After declearing what the inital text is, thats the limit of the array. So in the above example, my char array using "TEST" is MAX of 5 (4 char''s & 1 null)

So I couldn''t declare my array with a larger word without causing havoc. okay this is pretty easy now. Got it! =)

THANKS again.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
in C++ you can use CString, not requiring you to account for length or a null terminator.

Share this post


Link to post
Share on other sites
I looked at cstring, didn''t like it =) the char based is easy enough. and allows as much functionality as I need.

Axehandler

Share this post


Link to post
Share on other sites
u can use this

#include

void abc() {
LPSTR lpszMyString = "jwalker";




}

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
If you are using C++, how about the STL string? (in ) Not only are they built into C++, they are simple to use, fast, and they port effortlessly from platform to platform (as they are from the STL). Also it makes it easy to do program internationalisation etc.

There is a semi-good reference here:
http://www.sgi.com/Technology/STL/basic_string.html

Share this post


Link to post
Share on other sites