Archived

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

Fractal

char[???]...

Recommended Posts

"int"s I can understand, but what''s with the "char[particular number]"? Without the "[number]", "char" just doesn''t seem to work. Could anyone explain why, and how I could figure out the correct numbers to go inside the "[]" for a particular "char"?

Share this post


Link to post
Share on other sites
A char is just a single character; An int is just a single integer. By defining an integer array like:
int iName[10];
you create ten integers. The same thing with characters:
char cName[10];
creates an array of ten characters. They both are accessed the same, except for their type of course. Note that when declaring the array, the value inside of the brackets must be a constant value. If you want the size of the array to vary depending on some other variable at runtime, you''ll have to use dynamic allocation.

Share this post


Link to post
Share on other sites
Another thing....

int number[5] { 1, 2, 3, 4, 5 }

.... is fine. Chars are different.

If you want to use a char as a word it must end with a NULL.

name[0] = ''P''
name[1] = ''l''
name[2] = ''a''
name[3] = ''y''
name[4] = ''e''
name[5] = ''r''
name[6] = NULL
cout << name

.... produces "Player".

-----------------------------
Student - "How do I make my first game?"
Lecturer - "Based on your marks from your last assessment?"

Share this post


Link to post
Share on other sites
quote:
Original post by Fractal
"int"s I can understand,
but what''s with the "char[particular number]"?
Without the "[number]", "char" just doesn''t seem to work.
Could anyone explain why, and how I could figure out the correct numbers to go inside the "[]" for a particular "char"?


Well this is a pretty simple concept. Imagine that you own a set of those alphabet blocks that you always see children playing with on TV. In our case a single alphabet block is a char or "Character". Now when you define something using the []''s it means your making an array (or more than 1). So in order to represent this with our alphabet blocks, we take them and put one on top of the other. Once the blocks are all stacked you can get the data in the top block by going to [0]. The second blocks data is at [1], Third blocks data is at [2]...and so on.

So here is an example
char CharacterArray[12] = "Hello World\0";

(the \0 is what''s called a null terminator. This special character is needed only when you have a character array. When the computer reads a string it will continue until it finds a \0 to stop it. So if you forget the \0 at the end of your string, the computer will usualy keep reading memory until it finds one, which will give you a bunch of crap on the screen.)

Now if you access :
CharacterArray[0] you get the character ''H''
CharacterArray[1] you get the character ''e''
CharacterArray[2] you get the character ''l''
CharacterArray[3] you get the character ''l''
CharacterArray[4] you get the character ''o''
CharacterArray[5] you get the character '' ''
CharacterArray[6] you get the character ''W''
CharacterArray[7] you get the character ''o''
CharacterArray[8] you get the character ''r''
CharacterArray[9] you get the character ''l''
CharacterArray[10] you get the character ''d''
CharacterArray[11] you get the character ''\0''

Share this post


Link to post
Share on other sites