string类常用函数的应用大全

// string类的实操.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <string>
using namespace std;

int main()
{
	// 初始化
	string str1 = "666999sajkskasj"; // 拷贝构造函数赋值
	string str2(str1); // 构造函数赋值
	string str3(str1.begin(), str1.end()); // 迭代器赋值
	string str4;
	char ch1[] = "adnmsdid";
	str4.assign(ch1, 0, 7);
	string str5;
	str5.assign(str1,9); // 从第9个字符开始读到最后

	// 访问字符元素
	cout << str1[1] << endl;
	cout << str1.at(5) << endl;

	// 查找字符元素或子字符串
	str5.clear();
	int Place1 = str5.find("ad", 8); // 从第8个位置开始查询"ad"的字符位置
	cout << (Place1 == string::npos) << endl;
	// 没有找到目标字符串就返回string::npos
	char ch2[] = "666";
	int Place2 = str1.find(ch2, 1, 2); // 从第一个字符开始查找自ch2地址起的2个字符元素"66"
	cout << Place2 << endl; // string类中的find函数返回值为整型变量不同于vector返回的迭代器类型

	// 子字符串的提取
	str2.clear();
	str2 = str1.substr(3); // 3-end全部赋值给str2
	cout << str2 << endl;
	str3.clear();
	str3 = str1.substr(3, 9); // 3-9全部赋值给str2
	cout << str3 << endl;

	// 字符串的大小转换
	str2.clear();
	str2 = toupper(str1[8]); // 小写转换用tolower
	cout << str2 << endl;
	
	// 字符大小调整函数resize()函数的用法
	str4.resize(str1.size(), '6'); // 把str4调整成str1相同的大小不足的补'6',多余的去掉
	cout << str4 << endl;

	// 字符增补函数append()函数的用法
	str2.append(ch2);
	cout << str2 << endl;
	str2.clear();
	str2.append(str1, 4, 3); // 将str1中4-7个字符添加到str2字符串的后面
	cout << str2 << endl;

	// 快速显示最两端的字符
	cout << str1.back() << endl;
	cout << str1.front() << endl;

	// 快速向最末端插入/删除字符
	str3.push_back('a');
	str3.pop_back();
	cout << str3 << endl;

	// 反向遍历字符
	string::reverse_iterator riter = str1.rbegin();
	for (; riter != str1.rend(); riter++)
	{
		cout << *riter << " ";
	}
	cout << endl;

	// 字符串的替换
	str5.replace(str5.begin(), str5.end(), str1.c_str(), 5);
	cout << str5 << endl;
	str2.clear();
	str2.replace(str2.begin(), str2.end(), str1);
	cout << str2 << endl;

	// 字符串的比较
	cout << str1.compare(0, 4, str4) << endl;
	cout << str1.compare(1, 3, str4, 0, 2) << endl;
	cout << str1.compare(1, 3, ch2, 3) << endl; // ch2是字符数组的起始地址,也是被比较字符串的第一个字符的地址
	// 1代表>;-1代表<;0代表==

	// C++风格的字符串与C风格的字符型数组之间的练习
	cout << *(str1.c_str() + 7) << endl;

	// 字符串反转函数
	reverse(str1.begin(), str1.end()); // 注意反转字符串函数的用法,参数是迭代器,无调用对象
	cout << str1 << endl; 

	// 反向查找函数rfind()的使用
	string str6 = "6699";
	int ReversePlace = str6.rfind('6'); // 反向查找第一个'6'
	int PositivePlace = str6.find('6'); // 正向查找第一个'6'
	cout << "ReversePlace = " << ReversePlace << endl;
	cout << "PositivePlace = " << PositivePlace << endl;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥肥胖胖是太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值