从C到C++
1.1 基本程序框架
C++来源于C,其基本程序框架相同:头文件+main函数,有时会自定义函数在main函数中调用
#include <iostream>
using namespace std; //命名空间
int main() {
//写自己的代码
return 0;
}
注:任何 C语言的关键字和头文件函数都可在C++中使用
定义变量的方法和C 语言一模一样
1.2 C++的输入输出
C++的输入cin和输出cout定义在头文件iostream中,注意必须导入命名空间(using namespace std;)
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b; //输入
cout << a + b << endl; //输出,endl表示换行
return 0;
}
注:C++ 的输入输出不需要指定数据类型,但很难对输入输出做格式控制
例如计算三位整数的和,用scanf很容易直接取到各位数字
#include <iostream>
using namespace std;
int main() {
int a, b, c;
scanf("%1d%1d%1d", &a, &b, &c);
cout << a + b + c << endl;
return 0;
}
这是一个小技巧,有时候很有用。PTA跨年赛最后一题就是
Tips
真正在做题编程时,往往是两种输入输出方式混用的
scanf指定输入的格式,printf指定输出的格式
其实这些C语言都学习过,再此提醒下这个小技巧,应用到真正的编程中
1.3 布尔类型(不重要)
布尔类型bool是C++的新变量,它只有true和false两个值,由比较运算得到,用于条件判断
#include <iostream>
using namespace std;
int main() {
bool flag = 7 > 6; //7确实大于6,flag被赋值true
if(flag) {
cout << "true" << endl;
}
else {
cout << "false" << endl;
}
return 0;
}
C++的字符串string
1、字符串的输入和输出
需导入头文件<string>,在C++11版本后不需导入
C++字符串的输入只能使用cin或getline,getline能够输入带空格的字符串
#include <iostream>
#include <string> //头文件
using namespace std;
int main() {
string str;
getline(cin, str); //输入带空格的字符串
cout << str << endl;
return 0;
}
且C++的字符串可以直接相加进行拼接,但不能减法
#include <iostream>
#include <string> //头文件
using namespace std;
int main() {
string s1 = "hello";
string s2 = "world";
string s = s1 + s2; //直接相加拼接
cout << s << endl;
return 0;
}
2、常用函数
-
str.size(),获取字符串长度
-
str[i],获取索引i位置的字符
-
str.substr(a,len),从str字符串中索引a截取长度为len的字符串
-
str.find(t),判断t是否在str中存在(返回的整数在[0,str.size()-1]时表示存在)
3、字符(串)和数字间转换
字符转为对应的数字,直接char-'0'即可。每个字符对应一个ASCII的值
字符串转为数据
-
stoi,转为int
-
stol,转为long
-
stof,转为float
-
stod,转为double
数据转为字符串
-
to_string,整数和小数均可