Currently I'm working on a text based adventure - I'm not doing this for class or anything, but just because it seemed like a fun idea to try. I'm new to programming, but I've been reading far ahead in my class book, so I know a little more than I should, but there may be things I have misunderstood. Keep that in mind when reading my post.

So far, I have two problems. The first one is this - I need to have each room have a description. Thus, I need some type of variable to hold a string - at first, I thought I'd use a character array to hold the description. However, whenever I try to change the array, like so:

desc = "This is a room description.";

I get an error. If the description matches the exact number of characters the array is set to, this is the error:

main.cpp(23) : error C2106: '=' : left operand must be l-value

If the string I try to change the array to is less than the characters the array is set to, it's this error:

main.cpp(23) : error C2440: '=' : cannot convert from 'char [3]' to 'char [4]'
There is no context in which this conversion is possible


So my first question is this: Is there a way to have a character array that will hold a string that I can change depending on the room the character is in? And if so, could you please point me in the right direction?



My second issue is this. For the menu system, I origionally wanted to have movement commands available. I wanted the movement to be triggered by any number of words. If you've played zork, I'm sure you've realized that "n" and "N" and "north" as well as "North" all do the same thing. Being new, I thought I'd use the Switch case for this system. However, I've discovered that C does not support strings for switch cases. For my second attempt at building a menu-like system, I decided to try a bunch of if statements that compared an input array to see if it matched a menu item. I had planned to have an else statement at the end to catch anything that didn't match a menu item - however, I couldn't get that far. For some reason, my input array doesn't seem to equal the menu items - I'll post a very simplified version of my menu with only the "help" command on it to show what I mean.

Code:
printf( "Welcome to Athage. Please type a command.\n");
		/* print the welcome message. The name of the game is Athage */
		scanf("%s", desc );
		/* read a string, store it in the desc array */
	
		printf("%s\n", desc );
		/* print the string back for debugging purposes */

		if( desc == "help"){
			printf("The following commands are available.");
		/* if the string equals help, display this */
		}
		else {
			printf("I do not understand.");
		}
I have a feeling that I'm thinking about this the right way, but I've just not come across the information that I need to implement it. Please give me guidance as to how to build a menu system that can be driven by strings that are input by the user.