Advertisement

VC++ Question

Started by April 14, 2000 11:12 AM
10 comments, last by Axehandler 24 years, 10 months ago
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
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
Rock on,- Tom
Advertisement
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];
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
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?
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
Advertisement
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.
This Space Left Blank
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.
in C++ you can use CString, not requiring you to account for length or a null terminator.
I looked at cstring, didn''t like it =) the char based is easy enough. and allows as much functionality as I need.

Axehandler

This topic is closed to new replies.

Advertisement