C ++将字符串复制到Char String Array中

时间:2013-07-28 16:27:14

标签: c++

下面是我的代码

#include <stdio.h>
#include <string.h>
#include <iostream>

int main()
{
    std::string data;

    data = "hello world";

    char string[] = new char [data.length()+1];;
strcpy(string, data.c_str());


}

我收到了错误..

file.cpp: In function ‘int main()’:
file.cpp:14:46: error: initializer fails to determine size of ‘string’

我应该怎样做,因为我想将字符串数据的内容复制到char string []

感谢您的帮助。

5 个答案:

答案 0 :(得分:6)

更改为以下内容:

char* string = new char[data.size()+1];

答案 1 :(得分:2)

使用char *string,而不是char string[]

char string[]表示您定义数组,并且应该在编译时从初始化程序计算数组的大小。

答案 2 :(得分:1)

为了让它进行编译,您必须使用char*而不是char[]。在这种情况下,char[]需要一个恒定的大小,并且由于data不是编译时常量,因此无法确定大小。

答案 3 :(得分:0)

尝试这样的事情:

string Name="Hello FILE!"
int TempNumOne=Name.size();
char Filename[100];
for (int a=0;a<=TempNumOne;a++)
    {
        Filename[a]=Name[a];
    }

答案 4 :(得分:0)

你应该这样做:

char* string = new char[data.length()+1];
//  ^

strcpy以两个指针作为参数。 char string[]表示您正在声明一个数组。

这是函数的原型:

  

char * strcpy(char * dest,const char * src);