string.erase()

在代码中需要实现这样一个功能,需要将[00000001]这个存储在string中的字符串的中括号去掉,首先想到的就是string.erase()这个函数。结果。。。

代码:

 1 #include <iostream>
 2 #include <string>
 3
 4 using namespace std;
 5
 6 void strSize()
 7 {
 8     string strTest = "[0000-0001]";
 9     strTest.erase(strTest.size() - 1);
10     strTest.erase(0);
11 }
12
13 void strLength()
14 {
15     string strTest = "[0000-0001]";
16     strTest.erase(strTest.length() - 1);
17     strTest.erase(0);
18
19     cout << strTest << endl;
20 }
21
22 void strIterator()
23 {
24     string strTest = "[0000-0001]";
25     strTest.erase(strTest.begin());
26     strTest.erase(strTest.end() - 1);
27 }
28
29 int main(int argc, char *argv)
30 {
31     strIterator();
32
33     return 0;
34 }

这段代码中一共有三个函数进行测试,却只有一个可用,strIterator

其他两个总是会提示段错误。而且,跟踪调试发现,使用过erase后,strTest的size就变为0了。

待以后自己知识足够了再来解决。

加油吧,少年!

时间: 2024-10-11 10:29:12

string.erase()的相关文章

C++中string erase函数的使用

erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator position );(3)iterator erase ( iterator first, iterator last );也就是说有三种用法:(1)erase(pos,n); 删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符(2)erase(position);删除position处

string c++ 详解 erase find .

Example 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // string::erase #include <iostream> #include <string> using namespace std; int main () { string str ("This is an example phrase."); string::iterator it; // erase used

STL - string(典型操作demo)

1String概念 string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都可以用来表示字符串,那么二者有什么区别呢. string和char*的比较 string是一个类, char*是一个指向字符的指针. string封装了char*,管理这个字符串,是一个char*型的容器. string不用考虑内存释放和越界. string管理char*所分配的内存.每一次string的复制,取值都由string类负责维护

string中常用的函数

发现在string在处理这符串是很好用,就找了一篇文章放在这里了.. 用 string来代替char * 数组,使用sort排序算法来排序,用unique 函数来去重1.Define           string s1 = "hello";           string s2 = "world";           string s3 = s1 + "," + s2 +"!\n";2.append          

STL string常用API

String的使用: #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> using namespace std; //1. 字符串构造 /* string();//创建一个空的字符串 例如: string str; string(const string& str);//使用一个string对象初始化另一个string对象 string(const char* s);//使用字符串s初始化

string类的用法笔记

要想使用标准C++中string类,必须要包含 #include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件 using  std::string; using  std::wstring; 或 using namespace std; 下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t. string和wstring的用法是一样的,以下只用string作介绍: string类

C++ string的用法

之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要.我们可以用 = 进行赋值操作,==进行比较,+ 做串联(是不是很简单?).我们尽可以把它看成是C++的基本数据类型. 首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>.如下: #include <string> //注意这里不是str

类string解析

转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5645248.html 在涉及字符串的时候,我们可以定义字符数组或指针,其实还有一个类,专门是为字符串设计的,即类string,包含在头文件<string>中,在命名空间std中的,因此要用string类,需要使用命名空间std. 一.初始化.赋值所用 1.构造函数string():用于初始化的时候. string(); 默认构造函数 string (const string& str); 拷贝构

C++中string 的使用

string类的构造函数:string(const char *s);    //用c字符串s初始化string(int n,char c);     //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1:string s2="hello":都是正确的写法.当构造的string太长而无法表达时会抛出length_error异常 string类的字符操作:const char &operator[](int n)const;const