下面是我的代码
#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 []
感谢您的帮助。
答案 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);