第五章、vector与字符串

本文详细介绍了C++标准库中的两种重要数据结构——vector和string。vector用于表示动态的数据序列,涵盖初始化、判断空、获取大小、添加删除元素等操作。string则专门处理字符串序列,包括创建初始化、读写、长度计算、添加删除元素等功能。此外,还补充了关于字符和字符串的一些常见操作,如大小写转换、控制字符等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++标准库中常见的两种数据结构:vector、string
vector:可以表示一串数据序列
string:表示字符串序列
函数size() 构造函数vector<int>vecl(2)

5.1、vector

vector是标准库中的类,使用vector需要包含标准库的头文件

1、初始化

#include <vector>
vector<int> vec1;
vector<int> vec1 {1,2,3,4,5}
vector<float> vec2(3);
vector<char> vec3(3, 'a');
vector<char> vec4(vec3);

2、判断是否为空

vec1.empty()

3、获取大小

vec1.size()

4、添加元素

vec1.push_back(1);
vec1.push_back(2);

5、删除元素

vec1.pop_back();
vec1.pop_back();
#include <iostream>
#include <vector>
using namespace std;

int main() 
{
//1、vector初始化
	vector<int> vec1;
	vector<float> vec2 (3);
	vector<char> vec3 (3, 'a');
	vector<char> vec4 (vec3);

//2、遍历vector
	for ( int i = 0; i < vec1.size(); i++ ) 
	{
		cout << vec1[i] << " ";
	}

//3、添加元素
	vec1.push_back(1);
	vec1.push_back(2);
	
	if ( vec1.empty() ) 
	{
		cout << "vec1 is empty!" << endl;
	}
//4、移除元素	
	for ( int i = 0; i < vec1.size(); i++ ) 
	{
		cout << vec1[i] << endl;
	}
	vec1.pop_back();
	vec1.pop_back();
	for ( int i = 0; i < vec1.size(); i++ ) 
	{
		cout << vec1[i] << " ";
	}
//5、判断相等并赋值
	if ( vec1 == vec2 ) 
	{
		cout << "vec1与vec2相等" << endl;
	}
	vec2 = vec1;
	return 0;
}

5.2、string字符串

string本质上是一种vector<char>
1、创建并初始化

#include <string>
string s1;
string s2 (3, 'a');
string s3 ("value");
string s4 (s3);

2、读写

cin >> s1 >> s2;

3、长度

s.length()
s.size()

4、判断是否为空

s.empty()

5、添加元素

s.push_back('a');
s.push_back('b');

6、删减元素

s.pop_back();
#include <iostream>

using namespace std;

int main() 
{
//1、创建并初始化
	string s1;
	string s2 (3, 'a');
	string s3 ("value");
	string s4 (s3);
	cout << "s1: " << s1 << endl;
	cout << "s2: " << s2 << endl;
	cout << "s3: " << s3 << endl;
	cout << "s4: " << s4 << endl;
//2、读写
	string s1;
	string s2;
	cout << "请输入用空格分隔的两个字符串:" << endl;
	cin >> s1 >> s2;
	cout << "s1: " << s1 << endl;
	cout << "s2: " << s2 << endl;
	return 0;
}

5.3、补充

getchar()
putchar(ch);

1、字母或数字

isalnum(ch)

2、大、小写

isupper(ch)
islower(ch)

3、转换成小、大写字母

putchar(tolower(ch))
putchar(toupper(ch))

4、控制字符

iscntrl(ch)

5、数字

isdigit(ch)

6、可打印字符

isgraph(ch)

7、标点符号

ispunct(ch)

8、空格符

isspace(ch) 

9、十六进制

isxdigit(ch)
#include <iostream>
#include <ctype.h>
#include <stdio.h>
using namespace std;

// 字符处理函数
int main() {
	char ch = ' ';
	cout << "请输入一些字符,并以‘.’结尾:" << endl;
	do {
		ch = getchar();
		cout << "字符:";
		putchar(ch);
		cout << endl;
		if ( isalnum(ch) ) {
			cout << "您输入的是字母或数字!" << endl;
		}
		if ( isalpha(ch) ) 
		{
			if ( isupper(ch) ) 
			{
				cout << "您输入的是大写字母!" << endl;
				cout << "转换成小写字母是:";
				putchar(tolower(ch));
				cout << endl;
			} else 
			{
				cout << "您输入的是小写字母!" << endl;
				cout << "转换成大写字母是:";
				putchar(toupper(ch));
				cout << endl;
			}
		}
		if ( iscntrl(ch) ) 
		{
			cout << "您输入的是控制字符!" << endl;
		}
		if ( isdigit(ch) ) 
		{
			cout << "您输入的是数字!" << endl;
		}
		if ( isgraph(ch) ) 
		{
			cout << "您输入的是可打印字符!" << endl;
		}
		if ( ispunct(ch) ) 
		{
			cout << "您输入的是标点符号!" << endl;
		}
		if ( isspace(ch) ) 
		{
			cout << "您输入的是空白字符!" << endl;
		}
		if ( isxdigit(ch) ) 
		{
			cout << "您输入的是十六进制数!" << endl;
		}
	} while ( ch != '.' );
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值