#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"
我正在关注this初学者教程
答案 0 :(得分:5)
错误来自于您尝试将一个数组分配给另一个数组。赋值运算符不能这样做;您必须使用strcpy()
或std::copy()
复制数组。
但是,由于您希望使用C ++,因此您应该使用std::string
而不是char[]
来存储字符串。
答案 1 :(得分:2)
您无法直接将数组分配给另一个数组。应该将元素复制到元素。
使用std::strcpy
标题
<cstring>
char strin[206];
std::strcpy(strin, "sds");
使用std::string
标题
<string>
std::string strin;
strin = "sds";
由于你正在使用C ++,所以选择第二个。
答案 2 :(得分:1)
您的代码;
strin = "sds";
应该是:
strcpy(strin, "sds");
答案 3 :(得分: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++
答案 4 :(得分:0)
strin 是一个数组,它是指向字符的 const 指针,而不是指向字符的指针。 您尝试更改 const 指针,这是禁止的
你需要复制字符串。例如这样
strcpy (string, "sds");
(一般情况下意识缓冲区溢出!)