#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*
或char[]
相同,为什么string
类型的内容无法复制到char[]
?
答案 0 :(得分:2)
std::string
不与字符数组相同。它是一个C ++对象。如果要将其作为C字符串访问,请调用其c_str()
方法:
strcpy(a, b.c_str());