- A+
继续昨天未写完的...我是初学者,如果觉得太简单,勿喷,如果有什么错误之处,请指出,多谢~!
今天整理了写的根据文件路径截取文件名相关代码,主要包含替换路径中的“/”为“'\”,然后根据“\”截取最后的字符串,即文件名
一、字符串完全替换
以下方法可以替换掉所有的src,替换为dst
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<span class="hljs-comment">/** * 字符串替换 将str中所有的src替换为dst */</span> <span class="hljs-keyword">void</span> SlpcalHelper::string_replaceAll(<span class="hljs-built_in">std</span>::<span class="hljs-built_in">string</span> &str, <span class="hljs-keyword">const</span> <span class="hljs-built_in">std</span>::<span class="hljs-built_in">string</span> &src, <span class="hljs-keyword">const</span> <span class="hljs-built_in">std</span>::<span class="hljs-built_in">string</span> &dst) { <span class="hljs-built_in">std</span>::<span class="hljs-built_in">string</span>::size_type pos = <span class="hljs-number">0</span>; <span class="hljs-built_in">std</span>::<span class="hljs-built_in">string</span>::size_type srclen = src.size(); <span class="hljs-built_in">std</span>::<span class="hljs-built_in">string</span>::size_type dstlen = dst.size(); <span class="hljs-keyword">while</span> ((pos = str.find(src, pos)) != <span class="hljs-built_in">std</span>::<span class="hljs-built_in">string</span>::npos) { str.replace(pos, srclen, dst); pos += dstlen; } } |
获取文件名
以下是获取文件名
1 2 3 4 5 |
<span class="hljs-comment">// 先替换字符串</span> string_replaceAll(strPath, <span class="hljs-string">"/"</span>, <span class="hljs-string">"\\"</span>); <span class="hljs-comment">// 获取文件名</span> <span class="hljs-built_in">std</span>::<span class="hljs-built_in">string</span> tempFileName = strPath.substr(strPath.find_last_of(<span class="hljs-string">"\\"</span>) + <span class="hljs-number">1</span>); |
但是有时候,我们不需要文件后缀,于是就有了以下代码:
1 2 |
<span class="hljs-built_in">std</span>::<span class="hljs-built_in">string</span> fileName= strPath.substr(strPath.find_last_of(<span class="hljs-string">"\\"</span>) + <span class="hljs-number">1</span>, strPath.find_last_of(<span class="hljs-string">"."</span>)) ; |
当然,中间的两个位置自行先判断大小,我这只是截取最后一个“\”到最后一个“.”中间的字符串,并未考虑异常情况。
原文:简书ThinkinLiu 博客: IT老五
ps: 还碰到很多在java很容易做到的问题,c++需要一堆代码处理的基础问题,慢慢整理中...
c++基础(一):string转wstring及文件拷贝
作者:ThinkinLiu
链接:https://www.jianshu.com/p/1486b8a9ea0c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

我的微信公众号
微信扫一扫关注公众号,不定时更新