cyh_蓝桥杯c++ 学习系列一语言基础

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

39948359_p0_master1200

一、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
image

image

image

02 cin和cout
image

image

03 取消同步流
image

二、C++string
01 string简介
image

image

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; 
}

image

image

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; 
}

image

#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; 
}

image

image

常用的遍历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; 
}

![image](https://img2024.cnblogs.com/blog/3716825/202512/3716825-20251201191734776-1751993877.png)
posted @ 2025-12-01 19:18  这人有毒丶  阅读(0)  评论(0)    收藏  举报