当前位置: 首页 > article >正文

c ++零基础可视化——字符串

c ++零基础可视化——字符串


string
定义:
string str1 = "012345";                             // 012345
string str2 = str1;                                 // 012345
string str3(6, '#');                                // ######
string str4("012345");                              // 012345
string str5(str1);                                  // 012345
string str6(str1, 2);                               // 2345
string str7(str1, 2, 2);                            // 23
string str8("012345", 2);                           // 01
string str9({48, '1', '2'});                        // 012
string str10(str1.begin() + 1, str1.end() - 1);     // 1234

输入输出
string str;
cin >> str;
cout << str;

cin输入以空格分隔,若想输入整行,则用getline(cin, str)


操作
string

一些不熟知的用法:

printf("%s", str.c_str());

在string中除了可以用迭代器表示位置外,还可以直接用下标表示,所以有:

string str = "abc";
str.insert(1, "def");
// adefbc

在string的erase中,如果不填入删除的个数,只填入删除的位置,则默认将这个位置开始的后续字符全部删除,这与vector是不同的,注意区分。如:

string str1 = "adefbc";
str1.erase(1, 2);
// afbc
string str2 = "abfc";
str2.erase(1);
// a

append可将字符串加入末尾

string str = "a";
str.append("??bc");
// a??bc

replace相当于erase和insert的结合

string str = "a??bc";
str.replace(1, 2, "xyz");
// axyzbc

find

找子串并返回第一次出现的位置,也可规定起点开始查找。如果找不到,则返回string::npos

string str = "This is island";
int pos = str.find("is");
-> 2
*******************************
string str = "This is island";
int pos = str.find("is", 3);
-> 5
*******************************
string str = "This is island";
int pos = str.find("That");
-> string::npos

substr(),参数包含开始下标和长度。如果不写长度,则返回开始下标到结尾的字串

string str = "hello";
string sub = str.substr(2, 3);   // llo
string sub1 = str.substr(1);     // ello

starts_with(),ends_with() 前缀判断,后缀判断

string str = "hello";
bool res = str.starts_with("hel");
-> true
bool res1 = str.ends_with("llo");
->true;

常用普通函数

12
stoi()将字符串转为数字,类型为int
stoll()将字符串转为数字,类型为long long
stod()将字符串转为数字,类型为double
to_string()将数字转为字符串,任意类型数字均可

format()可以构造string



http://www.kler.cn/a/409527.html

相关文章:

  • pringboot自动装配原理是?
  • wireshark使用lua解析自定义协议
  • 基于Java Springboot公园管理系统
  • uni-app 界面TabBar中间大图标设置的两种方法
  • Springboot项目添加拦截器
  • 测试实项中的偶必现难测bug之模糊匹配逻辑
  • 用js实现点击抽奖
  • C# 读取多条数据记录导出到 Word标签模板之图片输出改造
  • 图解GitLab DevSecOps 流程
  • LabVIEW发动机热磨合试验台
  • 基于Angular+BootStrap+SpringBoot简单的购物网站
  • 实现在两台宿主机下的docker container 中实现多机器通讯
  • 【前端】JavaScript 变量声明与函数提升例题分析:深入理解变量提升、作用域链与函数调用
  • meterpreter常用命令 下
  • 取石子游戏
  • L1G1000 书生大模型全链路开源开放体系笔记
  • Python中使用matplotlib绘制图像并填充满整个figure区域
  • iphone小程序设置burpsuite代理抓包
  • 深入FastAPI:表单和文件上传详解
  • 03-微服务搭建
  • HC-SR501 PIR传感器是如何工作的以及如何与ESP32接口的
  • 【GPT】长时间面对屏幕会导致想吃垃圾食品吗
  • Python 类和对象:详细讲解中篇
  • 详解Qt QStorageInfo 存储信息类
  • 健康之路走上IPO之路 百度演双重角色
  • JavaFX:简介、使用场景、常见问题及对比其他框架分析