C++基础::string(三)
C++基础::string
C++基础::string(二)
- 在单个字符的查找上,find 和 find_\first_of()是等价的
1. basename 和扩展名(extension)的获得
注意,一个字符串形式的文件名(filename),自然包含 basename 和扩展名(extension),需要注意的是,扩展名是最后一个.
(句点)后的子串,而非第一个,最后一个
自然对应于字符串类的find_last_of
。
std::string filename = "hello.txt.doc", basename, extname;
std::string::size_type idx = filename.find_last_of(".");
if (idx != std::string::npos)
{basename = filename.substr(0, idx);extname = filename.substr(idx+1, filename.size()-idx-1);
}
2. 文件名合法性的判断
文件名以句点.
结尾是不允许的;
推论——文件名非法的判断:
没有句点
句点在文件名的结尾处
std::string::size_type idx = filename.find_last_of('.');
if (idx != std::string::npos && idx != filename.size()-1)...
3. substr:获得子串
注意该接口的两个参数不表,起始位置和结束,而是开始下标和子串的长度;
str.substr(s); // 表示开始到末尾 str[s:],等价于
str.substr(s, n-s);// str.substr(1) ⇒ 删除第一个字母后的其他字符串
str.substr(s, t-s+1);// 表示 str[s:t] 之间的,包含两端点
substr 和 find_** 等成员函数结合,实现颇为强大的功能:
string str = "doqurfhw1780292fhie", nums = "1234567890";
int s = str.find_first_of(nums);
int t = str.find_last_of(nums);
cout << str.substr(s, t-s+1) << endl;// 1780292
4. +:字符串拼接
str1 + str2;
C++基础::string(三)相关推荐
- Servlet基础(三) Servlet的多线程同步问题
Servlet基础(三) Servlet的多线程同步问题 Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率. 由于Servlet/JSP默认是以多线程模式执行的, ...
- C#基础第三天-作业-集合-冒泡排序-模拟名片
1.名片:用两种集合(ArrayList/List<>)去输出余下信息. 身份证号码,电话号码,性别,姓名,身高,年龄,体重. 需求:根据 姓名 去查询某一行数据.如果集合中不存在提示(& ...
- Java校招笔试题-Java基础部分(三)
导语 Java 面试题集2021版 Java基础部分三 26.说说has a 与is a的区别 27.一个房间里有一把椅子,椅子有四条腿,房子和椅子是什么关系,椅子和椅子腿是什么关系? 28.什么 ...
- C++基础::string(二)
C++基础::string 构造 接受char*作为单参构造,且该单参未被explicit修饰(赋值即构造): char* s = "hello";// char s[] = &q ...
- 数字化方法基础(三)_导入本地模型
数字化方法基础(三)_导入本地模型 Chapter 6 导入本地模型 如何创建一个列表 如何读取本地模型 全部教程链接: https://blog.csdn.net/weixin_44543463/a ...
- JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入)
JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入) 开发流程:需求文档 接口文档 效果图 开发环境统一:JDK1.8 IDEA win10 GIT SSM SSH SpringB ...
- 语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符)
语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符) (如有错误,欢迎指正,感谢!) 类 类是面向对象的程序设计中的概念,实现信息的封装 概念: 类就是拥有相等行为和相同的属性的 ...
- Java实习生常规技术面试题每日十题Java基础(三)
目录 1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别? 3.Overload和Override的区别.参数列表相同,返回值不同的方法,是否是重 ...
- #Linux基础(三)
#Linux基础(三) ###vi/vim的特点 vi/vim是一种纯文本编辑工具,它不像world可以排版,可以调整字体大小,可以改变字体颜色. vi/vim正是一个文本编辑工具,只能对文本的内容进 ...
最新文章
- 人工智能:AI 芯片快速起航
- 简单型的弱电机房工程汇报方案
- 【行业】点餐App未来必须面对的三大难题
- [导入]在ASP.NET中跨页面实现多选
- 2018,腾讯110,感谢有你
- 面试官 | JVM 为什么使用元空间替换了永久代?
- java二叉树原理_史上最全二叉树遍历详解(Java实现,原理相同)
- Docker系列(二):Docker安装
- unittest 简单使用
- 问道linux一键端,问道手游源码打包一键端搭建_附教程
- 基于单片机的空气质量(PM2.5)监测系统设计(#0423)
- 重启计算机可以使用什么组合键,win10系统重启电脑的快捷键是什么呢?
- 超有趣的Python实战:将图片转成像素风~
- windows bat系列9:for处理案例三 单行按指定分隔符分割
- 国内外有哪些比较好的电子技术的网站类似github?
- PMP证书含金量再次提升,纳入北京工作居住证办理范围
- Hive On Spark
- 计算机丢失文件无法打开ae,ae工程文件打开提示素材丢失该怎么办?
- 双系统下Deepin的安装和卸载(Deepin20.2+Win10)
- 航城街道工商联(商会)领导一行莅临联诚发参观考察