Been thinking, what\'s the difference between declaring a variable with [] or * ? The way I see it:
char *str = new char[100];
char str2[] = \"Hi world!\";
<
Okay, I had left two negative comments. That's not really useful; I've removed them.
char *str = new char[100];
This block can be freed using delete [].
char [] str2 = "Hi world!";
This array can be modified without problems, which is nice. So
str2[0] = 'N';
cout << str2;
should print Ni world! to the standard output, making certain knights feel very uncomfortable.
char *str = "Hi all";
str[0] = 'N'; // ERROR!
void upperCaseString(char *_str) {};
void upperCaseString(char [] _str) {};
look the same to me, and in your case (you want to uppercase a string in place) it really doesn't matters.
However, all this begs the question: why are you using char * to express strings in C++?