#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"
我正在关注这个初学者教程
该错误来自您试图将一个数组分配给另一个数组的事实。赋值运算符不能这样做;您必须使用strcpy()
or复制数组std::copy()
。
但是,由于您想在 C++ 中工作,因此您应该真正使用std::string
而不是char[]
存储字符串。
您不能直接将数组分配给另一个数组。它应该被复制元素到元素。
std::strcpy
从<cstring>
标头使用
char strin[206];
std::strcpy(strin, "sds");
std::string
从<string>
标头使用
std::string strin;
strin = "sds";
由于您使用的是 C++,请选择第二个。
你的代码;
strin = "sds";
应该:
strcpy(strin, "sds");
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++
strin是一个数组,它是指向 chars 的const指针,而不是指向chars的指针。您试图更改const指针,这是被禁止的
你需要复制字符串。例如这样
strcpy (string, "sds");
(在一般情况下意识到缓冲区溢出!)