IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ 学习之string 字符串比较、存取、插入删除、求子串 -> 正文阅读

[C++知识库]C++ 学习之string 字符串比较、存取、插入删除、求子串

1、字符串比较

比较函数原型:

  • int compare(const string &s) const; //与字符串s比较
  • int compare(const char *s) const; //与字符串s比较

比较方式:

  • 字符串比较是按字符的ASCII码进行对比
= 返回   0

> 返回   1 

< 返回  -1

总结:字符串对比主要是用于比较两个字符串是否相等,判断谁大谁小的意义并不是很大

2、字符串存取

string中单个字符存取方式有两种

  • char& operator[](int n); //通过[]方式取字符
  • char& at(int n); //通过at方法获取字符

总结:string字符串中单个字符存取有两种方式,利用 [ ] 或 at

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


//字符串比较是按字符的ASCII码进行对比

void test01()//字符串大小比较
{
	string str1("hello");
	string str2("xello");

	int ret = str2.compare(str1);
	if (ret == 0)
	{
		cout << "两个字符串相等" << endl;
	}
	if (ret == 1)
	{
		cout << "str2大于str1" << endl;
	}
	if (ret == -1)
	{
		cout << "str2小于str1" << endl;
	}
}


void test02()//字符串存取
{
	string str;
	str = "12345678";

	cout << str.size() << endl;

	for (int i = 0; i < str.size(); i++)//[ ]方式读取
	{
		cout << str[i] << " ";
	}


	for (int i = 0; i < str.size(); i++)//at方式读取
	{
		cout << str.at(i) << " ";
	}

	str[7] = 'x';
	str.at(0) = 'x';

	cout << str << endl;

}

int main()
{
	test01();
	test02();
	return 0;
}
3、字符串插入和删除

函数原型:

  • string& insert(int pos, const char* s); //插入字符串
  • string& insert(int pos, const string& str); //插入字符串
  • string& insert(int pos, int n, char c); //在指定位置插入n个字符c
  • string& erase(int pos, int n = npos); //删除从Pos开始的n个字符

总结:插入和删除的起始下标都是从0开始

4、求子串,字符串截取

函数原型:

  • string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字符组成的字符串

总结:灵活的运用求子串功能,可以在实际开发中获取有效的信息

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


void test01()//插入删除字符
{
	string str1 = "hello";//定义的同时可以赋值字符串

	str1.insert(1, "123");//从第一个位置起,插入字符串   最后变成h123ello;

	cout << str1 << endl;

	str1.erase(1, 3);//从第一个位置起删除三个字符

	cout << str1 << endl;

}


void test02()//求子串
{
	string s1 = "hello";
	string s2 = s1.substr(1, 3);//从s1的第一个位置,取三个字符

	cout << s2 << endl;//ell
	
}

void test03()//求子串的实用操作
{
	string s1 = "xcl@1234567.com";//截取出用户名字

	int pos = s1.find('@');//首先找到@的位置

	string usr_name = s1.substr(0, pos);//从第0个位置开始,取到@之前

	cout << usr_name << endl;

	
}


int main()
{
	
	//string s1 = 'a';//错误,不能定义的同时不能赋值一个字符
	string s2;
	s2 = 'a';

	//test01();

	//test02();


	test03();

	return 0;

}


  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 11:41:26  更:2021-10-19 11:43:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:44:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码