一、char*(char)转string(直接赋值)
#include<iostream>
#include<string>
#include <typeinfo>
using namespace std;
int main()
{
string str;
const char* p = "ch";
//char p[] = "ch";
str = p;
cout << str << endl;
cout << typeid(str).name() << endl;
system("pause");
return 0;
}
ch
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >
二、string转char*
1、方法一: c_str()
#include<iostream>
#include<string>
#include <typeinfo>
using namespace std;
int main()
{
string str="str";
const char *p=str.c_str();
cout << p << endl;
cout << typeid(p).name() << endl;
system("pause");
return 0;
}
str
char const * __ptr64
2、方法二: data()
#include<iostream>
#include<string>
#include <typeinfo>
using namespace std;
int main()
{
string str="str";
const char* p = str.data();
cout << p << endl;
cout << typeid(p).name() << endl;
system("pause");
return 0;
}
str
char const * __ptr64
三、求字符串的长度
1、方法一:用string的成员方法length()获取字符串长度
#include<iostream>
#include<string>
#include <typeinfo>
using namespace std;
int main()
{
string str="str";
const char* p = str.data();
cout << "str的长度="<<str.length() << endl;
cout << "str的类型=" <<typeid(p).name() << endl;
system("pause");
return 0;
}
str的长度=3
str的类型=char const * __ptr64
2、方法二:用string的成员方法size()获取字符串长度
#include<iostream>
#include<string>
#include <typeinfo>
using namespace std;
int main()
{
string str="str";
const char* p = str.data();
cout << "str的长度="<<str.size() << endl;
cout << "str的类型=" <<typeid(p).name() << endl;
system("pause");
return 0;
}
str的长度=3
str的类型=char const * __ptr64
3、方法三:用strlen获取字符串长度,strlen同样也可以用于C++的string。但是需要用c_str()将C++ string转换为char*类型。
#include<iostream>
#include<string>
#include <typeinfo>
using namespace std;
int main()
{
string str="str";
const char* p = str.data();
cout << "str的长度="<<strlen(p) << endl;
cout << "str的类型=" <<typeid(p).name() << endl;
system("pause");
return 0;
}
str的长度=3
str的类型=char const * __ptr64