I am trying to send a String via the Serial Monitor to the Arduino
You can not make the Serial Monitor app create an instance of the String class. You can not send an instance of a class via the serial port.
Now, if I send 'HELLO' (without ' ') via the Serial Monitor to the Arduino, shouldn't 'str1' and 'str' be identically the same?
Maybe. We have no idea what str1 is, or what is actually in str, so we can't tell you.
One thing that you don't seem to understand is that the Arduino can read serial data far faster than it can be received. So, when you send "HELLO", nothing will happen for a while. Then, the 'H' will arrive, by itself. The Arduino will read that, and see that there is no more data, so str will contain "H".
Later, the 'E' will arrive. The Arduino will read that, and see that there is no more data, so str will contain "E".
Also note that Serial Monitor is probably sending one or two characters of line endings.
If all goes well the two character arrays will contain the same string of characters but they will not be at the same address so a simple comparison of their addresses, like "if (str == str1)", will be false. To compare strings you have to call a function that compares each character in turn: "if (strcmp(str, str1) == 0)".
Thank you guys for all your replies, I really appreciate that!
I'm reading into Robin2's advices right now.
Also I didn't think about the timing issues yet.
My main problem is, that I cannot "work" with the serial sent char array. But I can directly send the correct String that I typed in back to the Serial Monitor (Serial.print()). So something must work correctly. However I somehow cannot use the Chars inside the array that I receive.
Thank you so much guys!
According to your Tutorial everything went absolutely how it should.
I think what I was missing was the line ending.
So basically all I did was, I changed the program to add the '\0' to the string if the code detects the newline from the serial input.