方法1:用c/c++自身的字符串数组
#include
void test()
{
// 用法 1 - 1
char szInfo[100] = {0};
strcpy(szInfo, "hello, world\r\n");
printf(szInfo);
// 用法 1- 2
char *pInfo = "hello, guys\r\n";
printf(pInfo);
// 用法 1 - 3
char *pThird = new char[100];
strcpy(pThird, "hello, third method\r\n");
printf(pThird);
}
方法2: 用 STL 封装的字符串 ,好处是重载了许多运算符,使得字符串的连接等操作很方便
#include
using namespace std;
void test2()
{
string str;
str = "hello, ";
str += "world\r\n";
printf(str.c_str());
}
是c的字符串操作库函数头文件,里面并没有什么字符串变量,只是一些strcmp,strcpy等的字符串操作函数,操作的对象是char[]数组指针。
是C++对c的库函数的兼容,里面内容就是#include
#include
using namespace std;
其具体内容和string.h一样。
才是c++的字符串库,里面定义了字符串类string,使用的方法为:
#include
using namespace std;
string s1;
s1="abc";
#include
然后在程序当中定义变量a就行了呀。
字符变量用 char a;
字符串变量定义用 string a;
首先:一个易懂理解。你把string就当成一个类型,不过不是基本数据类型,是一个封装好的类,其实就是一个字符数组,只不过多了一个结束符\0。
其次:你说为什么不能赋值?有了上面的理解,str1是string类型你非要把它赋给一个char型的
肯定编译报错类型转换啦,,更谈不上你把一个类的对象赋给一个非此类的指针。
string是一个封装过的类型,固有一定的结构,不是基本类型,不可以赋值给char型指针
如果你定义char
str1[]="meng",
就可以char
*p=str1;