char[] 转 char*
char ch[]="abcdef";
char *s = ch;
cout << s << endl; // 这不是打印地址,而是打印s的内容
char*转char[]
#include <string>
#include <iostream>
using namespace std;
int main() {
char *s = (char *) "aabbcc";
char ch[100];
size_t size = sizeof(char) * strlen(s) + 1;
strncpy_s(ch, s, size);
cout << ch << endl;
return 0;
}
string转char[]
#include <string>
#include <iostream>
using namespace std;
int main() {
string s = "abc";
// to char[]
const size_t chSize = 128;
char ch[chSize];
int i = 0;
strncpy_s(ch, chSize, s.c_str(), s.size());
cout << ch << endl;
// to const char*
const char *aa = s.c_str();
cout << aa << endl;
return 0;
}
char[]转string
#include <string>
#include <iostream>
using namespace std;
int main() {
string s;
char ch[10] = "abcdef";
s = ch; // 简单粗爆,
string b(ch); // 构造函数
string c;
c.append(ch); // append
cout << s << endl;
cout << b << endl;
cout << c << endl;
}
string转char*
#include <string>
#include <iostream>
using namespace std;
int main() {
// 方法一
{
string s = "aa";
char *ch;
ch = (char *) s.c_str();
cout << ch << endl;
}
// 方法二
{
string s = "bb";
char *ch;
s += '\0';
ch = (char *) s.data();
cout << ch << endl;
}
}
char*转string
#include <string>
#include <iostream>
using namespace std;
int main() {
// 方法一
{
string s;
char *ch = (char *) "abcdef";
s = ch;
cout << s << endl;
}
// 方法二
{
string s;
char *ch = (char *) "abcdef";
s = ch;
s.assign(ch);
cout << s << endl;
}
}