让字符指针指向string时,需要将string[0]的地址赋给字符指针

下面的例子就是样例

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string s="hello wordla!";
char *p;
p = &s[0];
cout<<p<<endl;
return 0;
}

所以遇到带参的构造函数时,如果遇到形参为(char*)的,对应想要传进去的字符串,直接 &对应字符串[0], 就可以了。

关于strcpy_s的一个问题

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char s1[]="hello";
char s2[]="world";
char s3[20];
strcpy_s(s3,2,s2);
cout<<s3;
return 0;
}

这样的话因为字节长度是明显的小于strlen(s2)时,是不够空间的,所以赋值是失败的,无法进行复制,故会发现输出null,无输出内容