string.erase()--已解决
在代码中需要实现这样一个功能,需要将[00000001]这个存储在string中的字符串的中括号去掉,首先想到的就是string.erase()这个函数。结果。。。
代码:
#include <iostream>
#include <string> using namespace std; void strSize()
{
string strTest = "[0000-0001]";
strTest.erase(strTest.size() - );
strTest.erase();
} void strLength()
{
string strTest = "[0000-0001]";
strTest.erase(strTest.length() - );
strTest.erase(); cout << strTest << endl;
} void strIterator()
{
string strTest = "[0000-0001]";
strTest.erase(strTest.begin());
strTest.erase(strTest.end() - );
} int main(int argc, char *argv)
{
strIterator(); return ;
}
这段代码中一共有三个函数进行测试,却只有一个可用,strIterator
其他两个总是会提示段错误。而且,跟踪调试发现,使用过erase后,strTest的size就变为0了。
待以后自己知识足够了再来解决。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
问题解决了:
#include <iostream>
#include <string>
using namespace std; // 去处头部或者尾部的空白
void trimStr(string &str)
{
int nHeadPos = ;
int nTailPos = ; nHeadPos = str.find_first_not_of(' ', );
str.erase(, nHeadPos);
nTailPos = str.find_last_not_of(' ');
str.erase(nTailPos + );
} int main(int argc, char **argv)
{
string strTest = " hello ";
trimStr(strTest); return ;
}
原因是因为我把string::erase()的用法用错了。下面是它的三个重载版本
string& erase (size_t pos = , size_t len = npos); iterator erase (iterator p); iterator erase (iterator first, iterator last);
参考:http://www.cplusplus.com/reference/string/string/erase/
根据它的定义可以知道,第一个是删除从指定下标开始len个字符的字符串。不指定则删除到结尾。(这就是我用错的原因,我以为可以删除指定下标出的字符,当然,如果长度指定为1也是可以的。)
而通过迭代器可以,是因为第二个重载版本的存在,它的作用是删除迭代器指向的字符。
第三个是删除两个迭代器之间的字符
虽然这个错误很低级,但是通过这次的错误,也让我更加了解了这个函数的使用。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
加油吧,少年!
string.erase()--已解决的更多相关文章
- Cannot get a NUMERIC value from a STRING cell? 已解决
最近在写项目中用到了excel的导入,遇到了Cannot get a NUMERIC value from a STRING cell的报错.原因是无法从纯数字的单元格用获取String的方式获取.跟 ...
- 已解决】Sublime中运行带input或raw_input的Python代码出错:EOFError: EOF when reading a line(转)
[问题] 在折腾: [已解决]Sublime Text 2中运行Python程序出错:The system cannot find the file specified 的过程中,虽然解决了找不到py ...
- 【已解决】BeautifulSoup已经获得了Unicode的Soup但是print出来却是乱码
[问题] 某人遇到的问题: 关于BeautifulSoup抓取表格及SAE数据库导入的问题(跪求大神帮忙) 简单说就是: 用如下代码: ? 1 2 3 4 5 6 7 import re,urllib ...
- 【已解决】谁动了我的CurrentPrincipal?求助我在给Artech的wcf petshop增加授权机制的时候遇到的问题。
这个问题已解决,是绑定设置的问题,主要还是因为我自己没有深入理解WCF绑定的安全机制.在这篇博客里面我来说说怎么解决的. 下载了Artech的wcf petshop源码(博文链接)并调试运行成功后,打 ...
- asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!)
原文:asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!) 我想用post的方式把一个页面表单的值,传到另一个页面.当我点击Default.as ...
- 【已解决】python中文字符乱码(GB2312,GBK,GB18030相关的问题)
http://againinput4.blog.163.com/blog/static/1727994912011111011432810/ [已解决]python中文字符乱码(GB2312,GB ...
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】
[Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题4-共享库中嵌套库带路径[已解决] 标签:[Linux开发] 紧接着上一篇,我居然又尝试了一下编译opencv,主要是因为由于交 ...
- Windows平台下在Emacs中使用plantuml中文乱码问题(已解决)
Windows平台下在Emacs中使用plantuml中文乱码问题(已解决) */--> code {color: #FF0000} pre.src {background-color: #00 ...
- SpringBoot整合Swagger2案例,以及报错:java.lang.NumberFormatException: For input string: ""原因和解决办法
原文链接:https://blog.csdn.net/weixin_43724369/article/details/89341949 SpringBoot整合Swagger2案例 先说SpringB ...
随机推荐
- 如何限制jenkins的任务在某个节点上执行
1.首先给节点打标签,一个节点可以打多个标签,中间使用空格分开 2.其次在每个任务上标记执行的标签位置,这样这个任务就在包含这些标签的节点上执行 3.通过这个方法限制的任务,只会跑在指定节点上,即是当 ...
- 多站点IIS用户安全权限设置
如果我们为每个站点都建立一个用户,并设置该用户只有访问本站点的权限,那么就能将访问权限控制在每个站点文件夹内,旁注问题也就解决了 一.这样配置的好处? 不知大家有没有听过旁注?我简单的解释一下吧:有个 ...
- TensorFlow------读取CSV文件实例
TensorFlow之读取CSV文件实例: import tensorflow as tf import os def csvread(filelist): ''' 读取CSV文件 :param fi ...
- RocketMQ概念整理
DefaultMessageStore 消息的存储和提取. 相对重要的两个方法: 消息存储 PutMessageResult putMessage(MessageExtBrokerInner msg) ...
- ckeditor 绑定事件
CKEDITOR.instances["Content"].on("instanceReady", function () { //set keyup even ...
- 元素的数据存储-jQuery.data()与.data()
jQuery提供的存储接口 jQuery.data( element, key, value ) //静态接口,存数据 jQuery.data( element, key ) //静态接口,取数据 . ...
- Spring集成ActiveMQ配置 --转
转自:http://suhuanzheng7784877.iteye.com/blog/969865 集成环境 Spring采用2.5.6版本,ActiveMQ使用的是5.4.2,从apache站点可 ...
- iOS APP 上传
原地址:http://www.cnblogs.com/uvsjoh/archive/2012/11/14/2769739.html 流程:1 开发好要发布的程序 -- 需要在程序中包含符合要求规格的i ...
- 解决64位操作系统下运行psql的问题
我的机器环境是 win7 64位.正常情况下,只需要安装plsql 和 oracle client,配置好 tnsname.ora 就能正常访问数据库.实际上遇到了几个问题. 1. 在tnsnames ...
- Java中Object转化为int类型
转自:http://blog.sina.com.cn/s/blog_5f8421fb010162kb.html Java中由Object类型转化为int类型时,不能直接转化,先是将Object类型转化 ...