1
#include <iostream>

using namespace std;

int main()
{
    char strin[206];

    strin = "sds";
    cout<<strin;
}

为什么我会收到此错误?

error: incompatible types in assignment of 'const char [4]' to 'char [206]' //on line strin = "sds"

我正在关注这个初学者教程

4

5 回答 5

5

该错误来自您试图将一个数组分配给另一个数组的事实。赋值运算符不能这样做;您必须使用strcpy()or复制数组std::copy()

但是,由于您想在 C++ 中工作,因此您应该真正使用std::string而不是char[]存储字符串。

于 2013-04-09T09:01:45.993 回答
2

您不能直接将数组分配给另一个数组。它应该被复制元素到元素。

std::strcpy<cstring>标头使用

char strin[206];
std::strcpy(strin, "sds");

 

std::string<string>标头使用

std::string strin;
strin = "sds";

 

由于您使用的是 C++,请选择第二个。

于 2013-04-09T09:01:17.217 回答
1

你的代码;

strin = "sds";

应该:

strcpy(strin, "sds");
于 2013-04-09T09:01:22.820 回答
0

C/C++ 没有内置的字符串操作。您需要使用任一功能:

strcpy(strin, "sds"); // will work in C and C++
// strncpy(strin, "sds", 205); // safer if you want to copy user-given string

std::string

std::string strin(206, 0);

strin = "sds"; // only C++
于 2013-04-09T09:03:11.253 回答
0

strin是一个数组,它是指向 chars 的const指针,而不是指向chars的指针。您试图更改const指针,这是被禁止的

你需要复制字符串。例如这样

strcpy (string, "sds");

(在一般情况下意识到缓冲区溢出!)

于 2013-04-09T09:04:44.920 回答