wdylyh
wdylyh
Published on 2025-03-05 / 15 Visits
1
2

C++教程

目标

这一章讲的都是关于变量哒。然后忘说了,没发布3章会出一章专门拿来练习题目。

变量

分很多类型。

int

int类型是最常用的类型了,是整数类型。举个例子,比如你往一个int类型变量塞入一个1.9,那么变量里存的其实是1。但是不是四舍五入,而是向下取整。

int a,b,c,d;

这就是如何的创建。放在main主函数里的是局部变量,放在main函数外的是全局。

#include<bits/stdc++.h>
using namespace std;
int a,c;//全局 
int main(){
	int b,d;//局部 
	return 0; 
}

最大值是2147483648,最小是-2147483648。系统变量INT_MIN和INT_MAX存着

float

支持小数!但是精度是小数点后7位。最大值为1.17549e-38,最小为-1.17549e-038。系统变量FLT_MIN和FLT_MAX存着

double

float的升级版!支持小数位后17位。最大值2.22507e-308,最小-2.22507e-308。系统变量DBL_MIN和DBL_MAX存着

char

字符类型。比方说char a='a';然后如果你把a赋值给了int的b,那么b就等于a的ASCII码。

string

有关它的代码多了去了,这章专门设一个板块讲。他就是字符串类型。

long

这玩意很牛叉,可以加在别的类型变量前面(他自己也可以)。比如long int,long long,long double……他就是可以把变量最大值给扩大的一个玩意。(题目中有涉及到幂运算就得考虑用这个了)

变量操作

输入

cin。上一章讲过不过多赘述。

string专用

这玩意最好用getline。

getline(cin,变量)

但是如果getline和int混用要注意在它俩之间加一个cin获取一个废物变量。

getline(cin.a)
cin>>fei_wu;
cin>>b;

为什么?cin不是要用enter结束输入吗?这个enter会被getline获取到导致string变量没有被录入。反过来就是getline抢了cin要输入的数字

输出

小数类型的有专门的。

printf("%0.2f",变量);

0.2代表小数点后2位,0.3后3位以此类推

数值变化

类型转换

这时候隔壁py用户又来了:你们转换类型真麻烦!C++分显式和隐式。我们只讲显式。隐式太简单了c++的对比py的可以说是很复杂了……分3种

1

除string以外的互转

int a;
float b;
b=static_cast<float>(a);

static_cast不变,<>填写当前变量类型。

2

任何类型转string be like

int a;
string str;
str=to_string(a);

比上一种还简单

3

string转别的任何类型。str转int

int a;
string str;
str=stoi(a)

str转float

float a;
string str;
str=stof(a)

str转double

double a;
string str;
str=stod(a)

其实也有规律,都是sto开头,结尾是类型首字母。int就是i,float就是f,double就是d。

运算

a++;//自加
++a;//同上
a--;//自减
--a;//同上
a+=6;//a=a+6
a-=6;//a=a-6
a/=6;//a=a/6
a*=6//a=a*6
a=pow(2,4);a=2*2*2*2
a=6%5;//哟西有得讲。double和float不能用求余。

注意啦!b=a++和b=++a不一样的!自己去试吧。--一样道理。

string专项

长度

有两种写法

str.size()
str.length()

length老写法

某一位

str[第几位]

如果你学过c++就知道这也是数组的获取方式

str.substr(开始,结束)

注意!这个和py的str一样。从0开始索引。意思是比如str是123,那么第0位是1,第1位是2

合并

简单

string a="12",b="34";
cout<<a+b;

和python一样写法。

查找

str.find("内容")

简单吧

替换

str.replace(起始,结束,"要替换成什么")

也是很简单

结尾

好的今天学了变量的一大堆东西,大家要多练!


Comment