1

下面是我的代码

#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[]

感谢您的帮助。

4

5 回答 5

6

更改为以下内容:

char* string = new char[data.size()+1];
于 2013-07-28T16:29:58.667 回答
2

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

char string[]意味着您定义了一个数组,并且数组的大小应该在编译时从初始化程序中评估。

于 2013-07-28T16:30:12.033 回答
1

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

于 2013-07-28T16:30:09.170 回答
0

尝试这样的事情:

string Name="Hello FILE!"
int TempNumOne=Name.size();
char Filename[100];
for (int a=0;a<=TempNumOne;a++)
    {
        Filename[a]=Name[a];
    }
于 2013-07-28T16:31:20.660 回答
0

你应该做 :

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

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

这是函数的原型:

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

于 2013-07-28T16:31:50.963 回答