首页 > 其他分享 >STL之string

STL之string

时间:2024-03-28 19:30:11浏览次数:26  
标签:string STL s2 s1 cin pos 读入

c++STL之string


1.介绍

string是一个字符串类,可以理解成和int一样定义;

初始化和头文件

#include<string>
//当然也可以用万能头文件
#include<bits/stdc++.h>
//定义方式
string str;
//可以初始化
string str("ljj");
//多条初始化
string str(3,'27');
//第一个参数是个数,第二个参数是值,打印出来是272727

特性

string不同于char定义的字符,它是支持比较运算符的(按照字典序),还支持 + 运算符

string str1="ljj";
string str2="love";
string str3="xiaobaobao";
string s=str1+" "+str2+" "+str3;
cout<<s;
//输出ljj love xiaobaobao

bool judge=false;
string s1="abc";
string s2="abd";
if(s1<s2) judge=true;
(judge==true)?cout<<1:cout<<0;
//1

读入

//读入字符遇到空格和回车结束
string s1;
cin>>s1;
//读入包含空格的字符串,遇到回车结束
string s2;
getline(cin,s2);
//上面这种读入方法会获取前一个空格
//解决方案如下
int n;
cin>>n;
string s;
getchar();//cin.get()
getline(cin,s);

2.函数

代码含义
s.size/s.length()获取字符串长度
s.push_back(“ljj”)尾插入
erase(pos,len)删除从pos开始的len个字符
tolower(s[i])/toupper(s[i])大小写转化
s.substr(pos,n)从pos开始截取n个字符
s.find(str,pos)返回找到位置的索引,找不到返回-1
sort(s.begin(),s.end())按照字典序排序
reverse(s.begin(),s.end())翻转字符串

3.解题

以上一篇中序后序还原二叉树为例:

void printPre(string s1,string s2){
	if(s1=="\0"||s2=="\0"){
		return;
	}
	int size=s2.size()-1; 
	//根节点 
	int pos=s1.find(s2[size]);
	cout<<s1[pos];
	//左子树 
	printPre(s1.substr(0,pos),s2.substr(0,pos));
	//右子树
	printPre(s1.substr(pos+1),s2.substr(pos,size-pos)); 
}
//先序:abeidj
//中序:ebiadj
//后序:eibjda 

欢迎批评指正!

标签:string,STL,s2,s1,cin,pos,读入
From: https://blog.csdn.net/2301_78759802/article/details/137091656

相关文章

  • 【数据库】PostgreSQL中使用`SELECT DISTINCT`和`SUBSTRING`函数实现去重查询
    在PostgreSQL中,我们可以使用SELECTDISTINCT和SUBSTRING函数来实现对某个字段进行去重查询。本文将介绍如何使用这两个函数来实现对resource_version字段的去重查询。1.SELECTDISTINCT语句SELECTDISTINCT语句用于从表中选择不重复的记录。如果没有指定列名,则会选择所有列。在......
  • C++之STL整理(2)之vector超详用法整理
    C++之STL整理(2)之vector用法(创建、赋值、方法)整理注:整理一些突然学到的C++知识,随时mark一下例如:忘记的关键字用法,新关键字,新数据结构C++的vector用法整理C++之STL整理(2)之vector用法(创建、赋值、方法)整理一、vector的初始化1、默认构造函数2、拷贝构造函数copy区间3......
  • 解决 TS7053: Element implicitly has an any type because expression of type strin
    背景有个接口interfaceDataType{id:number;name:string;created_at:string;updated_at:string;}我的数据{"id":9,"created_at":"2024-03-11T17:50:16.129235+08:00","updated_at":"202......
  • string简介
    C++string类简介C++string类存储一个字符串,并包含多种方法一、初始化C++string类有多种初始化方法:空初始化复制构造子串构造(下标+长度型)数组构造(接受字符数组)填充构造voidtest1(){//空构造strings1;//拷贝构造strings2(s1);strings3=......
  • 【C++】string类(常用接口)
     ......
  • C++ STL - 优先级队列及其模拟实现
    目录0.引言1.priority_queue介绍 1.1构造函数 1.2 priority_queue接口函数使用 1.3仿函数  1.4题目练习 2. priority_queue模拟实现2.1基本框架:2.2默认构造函数2.3基本函数2.4堆的向上以及向下调整0.引言优先队列(priority_queue)是一种......
  • C++ STL- list 的使用以及练习
    目录0.引言1.list介绍 2.list使用2.1构造函数2.2listiterator的使用 3listcapacity 4.listelementaccess 5.listmodifiers 6.list迭代器失效 7.list与vector对vector8.OJ题讲解 删除链表的倒数第N 个节点:0.引言本篇博客我们......
  • 使用Docker搭建测试用例管理平台TestLink:简易指南
    简介Testlink是一款免费开源的测试管理软件,基于WEB的测试用例管理系统,主要功能是:测试项目管理、产品需求管理、测试用例管理、测试计划管理、测试用例的创建、管理和执行,并且还提供了统计功能。为了方便快速部署TestLink,并且保持环境的一致性,我们可以使用Docker进行搭建。本文将......
  • whistle.vase的基本用法
    安装w2installwhistle.vase使用启动whistle,进入127.0.0.1:8899/#plugins点击vase,进入vase页面创建对应模版引擎的文件不同的模版引擎用法参考:https://github.com/whistle-plugins/whistle.vase#whistlevase这里的模版引擎中除了whistle.vase内置的script引擎外,其他的......
  • WPF StringFormat在Label控件无效
    在WPF程序设计时,若使用Label控件绑定数据后StringFormat进行格式化显示时发现设定的StringFormat无效,但TextBlock控件中使用StringFormat显示正常,导致Label控件StringFormat失败的根本原因在于Label控件的Content属性是一个object对象,Binding.StringFormat仅作用于string类型属性......