字符数组和字符串:
字符数组定义:
char arr[长度] 最后一位'\0',字符数组结束
获取字符数组长度:
strlen(数组名)
for(int i=1;i<strlen(arr);i++)
{
cout<<arr[i]<<" ";
}
识别最后一位'\0'
for(int i=0;arr[i]!='\0')
{
cout<<arr[i]<<" ";
}
获取整行字符数组:
cin.getline(数组名,长度)
字符数组常见函数:
strcpy(目标数组,原数组)字符数组拷贝
strcat(str1,str2) 两个字符数组连接(str后面添加str2)
strchr(str,'a') 在字符数组中查找单个字符,找到1,没找到0
strstr(str,"dfff") 在字符数组中查找子串,找到1,没找到0
判断单个字符通用方法:
isupper(ch) 判断ch是否为大写
islower(ch) 判断ch是否为小写
isdigit(ch) 判断ch是否为数字
isalpha(ch) 判断ch是否为字母
字符串定义:
string str;
输入没有空格:
cin>>str;
输入有空格(整行):
getline(cin,str)
字符串常见函数:
str.size() 获取字符串长度,str.length()
str.empty() 判断字符串是否为空
str.clear() 清空字符串
str.find("sub") 查找字符串中是否存在子串sub
str.insert(位置,“内容”) 字符串插入
str.erase(位置,删除长度) 字符串删除
str.replace(位置,长度,“替换内容”) 字符串替换
结构体:可以存储多种数据元素
struct 结构体名
{
数据类型1;
数据类型2;
。。。。。。
};
引用结构体:
1.student s;//创建s对象
2.struct 结构体名
{
数据类型1;
数据类型2;
。。。。。。
}stu;//结构体后面创建stu对象
结构体填充数据
cin>>stu.数据类型
结构体初始化
1.结构体名 对象名={“xx”,98,89}
2.a.name="xx";
a.max=98
..
结构体数组
1.在结构体结束后面直接加数组
struct 结构体
{
数据......
}a[100];
2.结构体名 数组名[空间]
#include<bits/stdc++.h>
using namespace std;
struct st{
int id ;// 学生的id
int cs; // 语文
int mt; // 数学
int eg; // 英语
int total;//总分
}a,arr[100]; // a 单名学生,arr 多名学生
bool cmp(st s1,st s2){ // 自定义函数 (两名学生)
if(s1.total!=s2.total){
return s1.total>s2.total;
}
if(s1.cs!=s2.cs){
return s1.cs>s2.cs;
}
return s1.id<s2.id;
}
int main(){
int n;
cin>>n;
for(int i = 1;i<=n;i++){
arr[i].id = i; // 每名学生打上编号
cin>>arr[i].cs>>arr[i].mt>>arr[i].eg;
arr[i].total = arr[i].cs+arr[i].mt+arr[i].eg;
}
sort(arr+1,arr+n+1,cmp);
for(int i = 1;i<=n;i++){
cout<<arr[i].cs<<" "<<arr[i].mt<<" "<<arr[i].eg<<endl;
}
}
class 类:
class Box //类关键字class
{
private:
double length;//属性
double width;
public: //公用
void setLength(double length); //私有设置
void setWidth(double width);//私有设置
double getLength(); //私有获取
double getWidth(); //私有获取
double getArea(); //行为 获取面积
double getZc(){ //行为周长
return 2*(length+width);
};
void Box::setLength(double length)
{
this->length=length; //this指针访问自己
}
void Box::setWidth(double width)
{
this->width=width; //this指针访问自己
}
double Box::getLength() //获取私有leng
{
return length;
}
double Box::getWidth() //获取私有width
{
return width;
}
double Box::getArea() //::作用域
{
return length*width; //没有作用域len,wid没有申请会报错
}
int main()
{
Box box; //类的实例化
// cin>>box.length>>box.width;
// cout<<box.length*box.width;
box.setLength(6.0);
box.setWidth(7.0);
cout<<box.getArea()<<endl;
cout<<box.getZc()<<endl;
}