用char []创建一个字符串

时间:2013-04-09 08:57:46

标签: c++ string char

#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初学者教程

5 个答案:

答案 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");

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