cyh_蓝桥杯c++ 学习系列一语言基础
让我们迎接永远的神——C++!!本人平时写算法题的时候基本上用的都是C++,用C++写实在是太方便了,里面的STL和各种库实在太方便了。至于python,我的评价是已经被运行时间爆红劝退了

一、C++代码格式与语法基础
以下是C++的代码格式
#include <bits/stdc++.h>///使用万能头文件
using namespace std;
int main()
{
cout<<"Hello,World"<<endl;//利用cout将字符串输出,字符串用双引号扩起
printf("Hello,World");//利用printf将字符串输出
return 0;
}
这上面有几个注意的点:
1.在书写C++的代码中,调用万能库已经可以解决大部分情况了,所以在写代码的时候,我们基本上可以在开头无脑调用万能库
2.C++的代码一般有二种书写方式,第一种是不需要写using namespace std,即输出需要写为std::cout<<"Hello,World"<<std::endl;
第二种如所示代码,提前写using namespace std,输出可以写为cout<<"Hello,World"<<endl;
3.在输出方面,我们可以发现代码既用了C中的printf,也使用了C++中的cout,这说明我们可以在C++中去编写C语言代码
二、C++输入输出
C语言:
输入:scanf
输出:printf
C++:
输入:cin
输出:cout
01 scanf和printf



02 cin和cout


03 取消同步流

二、C++string
01 string简介


02 string的声明与初始化
#include<iostream>
#include<string>
using namespace std;
int main(){
//声明并初始化一个空字符串
string str1;
//使用字符串字面量初始化字符串
string str2="Hello,World!";
//使用另一个string对象来初始化字符串
string str3=str2;
//使用部分字符串初始化字符串
string str4=str2.substr(0,5);
//使用字符数组初始化字符串
const char* charArray="Hello" ;
string str5(charArray);
//使用的重复的字符初始化字符串
string str6(5,'A');
//输出字符串内容
cout<<str1<<endl;
cout<<str2<<endl;
cout<<str3<<endl;
cout<<str4<<endl;
cout<<str5<<endl;
cout<<str6<<endl;
return 0;
}


03 各种基本操作
#include<iostream>
#include<string>
using namespace std;
int main(){
// 1.获取字符串长度(length/size):
string str="Hello,World!";
int length=str.length();// 或者 int length= str.size();
cout<<"Length:"<<length<<endl;
//2.拼接字符串(+或append):
string str1="Hello";
string str2="World!";
string result1 = str1+","+str2;//使用+运算符
string result2 = str1.append(",").append(str2);//使用append()函数
cout<<"Result 1:"<<result1<<endl;
cout<<"Result 2:"<<result2<<endl;
//3.字符串查找(find):
string str3="Hello,World";
size_t pos=str3.find("World");//查找字符串的位置
if(pos!=string::npos){
cout<<"Substring found at position:"<<pos<<endl;
} else{
cout<<"Substring not found."<<endl;
}
//4.字符串替换(replace):
string str4="Hello,World!";
str4.replace(7,5,"Universe");//替换字符串
cout<<"Result:"<<str4<<endl;
return 0;
}

#include<iostream>
#include<string>
using namespace std;
int main(){
//5.提取子字符串(substr):
string str="Hello,World!";
string subStr = str.substr(7,5);//提取子字符串 7位置 5长度(不要越界)
cout<<"Substring:"<<subStr<<endl;
//6.字符串比较(compare):
string str1="Hello";
string str2="World";
int result=str1.compare(str2);//比较字符串
if(result==0){
cout<<"String are equal."<<endl;
} else if(result<0){
cout<<"String 1 is less than String 2."<<endl;
}else{
cout<<"String 1 is greater than String 2."<<endl;
}
return 0;
}


常用的遍历string的方法有两种:
1)循环枚举下标
2)auto枚举(其中&表示取引用类型,如果对i修改将会改变原来的值)
#include<iostream>
#include<string>
using namespace std;
int main(){
string s="Hello";
for(int i=0;i<s.length();i++)cout<<s[i];
cout<<'\n';
for(auto i:s)//i复制了s中对应的字幕
{
cout<<i;
i='a';//此处的修改无效,因为这个i是拷贝出来的,而不是引用s的
}
cout<<'\n';
//此时s="Hello"
for(auto&i:s){//&i就是s中的字符
cout<<i;
i='a';//此处修改会改变s的字符值
}
cout<<'\n';
//此时s="aaaaa"
cout<<s<<'\n';
return 0;
}

浙公网安备 33010602011771号