2
#include<iostream>
#include<string>

using namespace std;

int main(){
char a[10];
string b = "Hello"; 
char c[] = "Hello";
char *d ="Hello";

strcpy(a,b); //compiler complains.
strcpy(a,c);
strcpy(a,d);
    return 0;
}

我知道 strcpy 被定义为

char * strcpy ( char * destination, const char * source );

但是如果string类型变量与char*or相同char[],为什么string不能将类型的内容复制到char[]

请赐教。

4

1 回答 1

2

Astd::string与字符数组不同它是一个 C++ 对象。如果您想以 C 字符串的形式访问它,请调用它的c_str()方法:

strcpy(a, b.c_str());
于 2013-10-18T04:33:13.667 回答