【C++】逻辑与其他类型
if语句
if (condition1)
{
// 当条件1为真时执行的代码
}
else if (condition2)
{
// 当条件1为假且条件2为真时执行的代码
}
else
{
// 当所有条件都为假时执行的代码
}
只有一行代码可以省略大括号
if (condition1)
x = 1
bool类型
bool类型的内存大小由实现定义,默认为1字节大小

在bool类型中,非零就是真
即非零值都会被bool转换为1

算数运算符
逐位非 ~
对一个整数的
二进制每一位进行取反操作,即把每一位上的0变成1,把1变成0。
逐位与 &
只有当两个操作数的对应位
都为1时,结果才为1,否则为0。
逐位或 |
只要两个操作数的对应位中
有一个为1,结果就为1;只有当两个对应位都为0时,结果才为0。
逻辑运算符
非(not)

与(and)

或(or)
当两个操作数中至少
有一个为true时,结果为true。
只有当两个操作数都为false时,结果才为false。
字符串和字符
string是一个非常重要的数据类型,用于表示和操作可变长度的字符序列。
要想使用string就要先调用头文件
#include <string>

string类型支持打印

与变量不同的是,string字符串默认可以是空串

在字符串中,每一个字符都是char类型
字符串字面量const char *
字符串字面量由多个char组成

字符串结束用/0告诉内存该字符串的结束

字符串长度
用str.size()方法测试字符串长度

该长度是字符串的长度,而不是占用内存的长度,占用内存中还有/0

用str.capacity()方法查看占用字节数
但要注意的是字符数据本身仍然占用9个字节(对于"123456789"),但
std::string对象还有额外的开销用于存储这些元数据。具体的内存占用取决于实现,但通常会比单纯的字符数组多一些。

截断字符串
截断字符串用str.substr()方法

使用语法为substr(截断初始下标,截取长度)

字符串的空串判断
用str1.empty()方法,空则返回1,不空则返回0

或者用str.size()看长度,如果为0就空

字符串和数字的转换
用stoi()方法将字符串转化为int类型数字

用stod()方法将字符串转化为double类型数字

同理其他数值类型也可以转换

用to_string方法将数字转化为字符串

拼接字符串
"字符串"+"字符串"

查找替换字符串
字符串可以直接用==

在一堆字符串中查找使用.find()方法
如果找到子字符串或字符,返回其在原字符串中的第一个出现位置的索引。
如果未找到,返回std::string::npos。

在一堆字符串中替换使用.replace()方法


C++11之前的枚举类型
枚举类型的好处:支持switch语法,在特定场景性能高
定义声明方法
enum 枚举类型名
{
枚举值1,
枚举值2,
......
枚举值5
}

注意!!!逗号要是英文的

如果不给枚举赋值,则默认从0开始,后边依次加1

赋值了后边的也是依次加1

访问方法:可直接访问

使用枚举类型
可直接使用名称

也可以使用在枚举类型中的值

C++11之后的枚举类型
在定义声明方面有所不同
enum class 枚举类型名
{
枚举值1,
枚举值2,
......
枚举值5
}
访问方法
无法直接访问了

需要使用作用域限定进行访问
这有效防止了全局的命名冲突,以免多个枚举中存在同名时的报错

使用方法
不能用int类型来使用了。

类型是强类型,不能随便转换,要转换也是代码进行强制转换,更加安全了

枚举值的比较
枚举类型之间可以用来比较大小,比较的值就是枚举值

main函数参数传递和环境变量获取


int argc:argc是一个整数,表示命令行参数的个数。
char *argv[]:argv是一个字符指针数组,存储命令行传递给程序的所有参数。

int argc:它的值至少为1,因为程序本身的名称也被视为一个参数。
char *argv[]:argv[0]通常是程序的名称,而argv[1]到argv[argc-1]是程序接收的额外参数。

项目属性中传参
在项目属性中设置main函数的参数

此时argc的数量变为4

PowerShell控制台传参
进入文件如下路径

打开PowerShell控制台

然后输入指令添加参数

普通控制台传参
win + R + cmd指令打开控制台

进入路径

然后输入指令添加参数

char *env[]:一个字符指针数组,存储程序运行时的环境变量。

char *env[]:每个元素都是一个以 \0 结尾的字符串,格式为 key=value。
环境变量用于定义程序的运行环境,通常包括路径设置、用户信息、终端设置等。

switch语句
C++11以上版本switch语句和if语句对比

基本语法
switch (初始条件) {
case 条件1:
// 当 初始条件 == 条件1 时执行
break;
case 条件2:
// 当 初始条件 == 条件2 时执行
break;
// 可以有任意多个 case
default:
// 当 初始条件 不匹配任何 case 时执行
break;
}

记住不要忘记输入break否则会一直运行到结束

在枚举类型中的应用


浙公网安备 33010602011771号