#include <iostream>
#include <string> //c++的字符串处理函数
#include <cstring> //c中的字符串处理函数
using namespace std;
int size = 0;
bool empty()
{
return size == 0;
}
//结构体里面允许存在函数了
struct girl
{
//数据成员,也叫“属性”
char name[20];
int age;
//成员函数,也叫“行为”
void print()
{
cout << name << " " << age << endl;
}
};
int main()
{
bool boolNum = 1;
//1.含义:真和假
//2.打印的值:0或1
//3.作用:充当开关,充当函数返回值
//4.特殊的初始化
//5.非零表示成立,零表示不成立,-1也表示成立,任何非零值都表示成立
boolNum = false;
boolNum = true;
boolNum = -1;
printf("%d",boolNum);
//指针赋值问题:NULL改为nullptr
int *ptr = nullptr; //避免空和零的重复
//动态申请内存 malloc 和 free 转换到 new 和 delete
//1.分配单一内存:指针 转变成 普通变量
ptr = new int;
//2.分配一段内存
int *array = new int[10]; //int array[10]
//3.申请内存并初始化
int *pInt = new int(12); //普通变量用()进行初始化
int *pArray = new int[3]{1,2,3} //数组就用 {} 大括号进行初始化
dekete [] array; //释放数组
delete ptr; //释放普通变量
//4.内存池,申请的内存可以再分配
char malloc = new char[1024]; //首先申请1024个字节
int *pIntNum = new(malloc) int; //(malloc)是首地址,申请四个字节
char *charArray = new(malloc+4) char[100]; //再分配
//释放内存的时候,只需要把总内存释放就好了,不用释放多次
delete [] malloc;
//输入和输出
//printf 转换为 cout<<
//scanf 转换为 cin>>
//1.单个数据输入和输出
int num = 0;
char str[20] = "";
printf("请输入一个num:");
cin >> num; //cin 为 scanf
cout << num; //cout 为 printf
printf("\n请输入一个str");
cin >> str;
cout << str;
//2.原样输出,它支持转义字符
cout << "Iloveyou\n";
//3.多个数据的输出
//endl 等效于 "\n" ,endl还有清空缓冲区的作用
cout << "Iloveyou" << num << "\t" << str << endl;
cin >> num >> str;
cout << num << "\t" << str << endl;
//结构体数据的改变
//1.允许存在函数
//2.用结构体类型不需要struct,直接去用结构体名
girl myGirl = {"baby" , 10 };
//3.概念性的东西
//如何访问函数,和访问结构体成员一样的方式,用 点 的方式去访问
myGirl.print();
//string 类型的基本使用
//string 并不是c语言中的字符串
string str1;
string str2("Iloveyou");
string str3 = "Make";
//括号里面传变量常量都行
string str4(str2);
//基本操作,直接加也没问题
string str5 = str4 + str3;
cout << (str5 > str4) << endl;
cout << (str5 == str4) << endl;
cout << (str5 < str4 ) << endl;
//c++中的string 转换为c语言中的字符串: .c_str()
printf("\n%s\n",str5.c_str());
system("pause");
return 0;
}