在C中,我可以将字符串存储为数组,因此我尝试在C ++中执行以下操作:
message = "I am sending this back";
其中消息的定义方式如下:
#define mx 100
#define sizeArr (mx+1)
并在int main中:
char message[sizeArr];
但是我收到以下错误:“表达式必须是可修改的左值。”
出了什么问题?
答案 0 :(得分:3)
以下代码不是您想要的,不依赖于C或C ++语言。
char message[100];
message = "abc";
你必须做这样的事情:
char message[100];
strcpy( message, "abc" );
P.S。在C ++中有一个更好的解决方案,只需使用std :: string:
string message;
message = "abc";
答案 1 :(得分:1)
如果你必须使用字符数组,这里有一个常见的习语:
static const char my_text[] = "This is my text.";
长度的常见习语,因为它的编译时间常数是:
const size_t length_my_text = sizeof(my_text); // Includes terminating nul character.
对于没有终止空字符的文本长度:
const size_t length_no_nul = sizeof(my_text) - 1U;
要复制字符数组,请参阅: strcpy
,strcat
和strdup
strncpy
和strncat
。另请参阅strlen
和strcmp
。
文本的首选C ++习语是使用std::string
。