I am trying to replace a certain character in a string with a space using the following code line:
str[i] = " ";
How can realize this without getting the error in the title of the question?
const char* is a mutable pointer to an immutable character/string. You cannot change the contents of the location(s) this pointer points to. Also, compilers are required to give error messages when you try to do so. For the same reason, conversion from const char * to char* is deprecated.
use single quotes
str[ i ] = ' ';
In C++, the token " "
is a string literal which represents an array of two characters: the value of a space in the character set (eg, the value 32 in ascii) and a zero. On the other hand, the token ' '
represents a single character with the value of a space (usually 32). Note that in C, the token ' '
represents an integer with the value of a space. (In C, sizeof ' ' == sizeof(int)
, while in C++, sizeof ' ' == sizeof(char) == 1
.)
Single char
literals are obtained with single quotes:
str[i] = ' ';
A literal with double-quotes is a full string literal (a null-terminated array of char
), but you're only replacing a single char
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With