C++将字符串复制到字符字符串数组中

C++ Copy String into Char String Array

本文关键字:字符串 数组 字符 复制 C++      更新时间:2023-10-16

下面是我的代码

#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〔〕

谢谢你的帮助。

更改为以下内容:

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

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

char string[]意味着您定义了一个数组,并且应该在编译时从初始值设定项计算数组的大小。

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

试试这样的东西:

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

您应该做:

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

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

这是功能的原型:

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