♣ string 的基类basic_string中没有虚函数,它无意成为基类。更像是为了处理字符相关的问题而专门提供的一个工具及操作方法。如:想要在一个字符串str1中查找str2,没必要每次都去写KMP算法,开源的口号就是不要重复发明轮子,利用string中的find()操作即可。笔者遇到碰到过的问题中就有类似问题:给定两棵树,要求判断tree2是不是tree1的子结构。序列化之后就可以用如下语句:

if(string::npos!=str1.find(str2))
          return true;

♣ 它继承了c风格字符串(\0 结束)和操作,封装出来的对象更贴近用户,和vector一样是很好用的工具,所以觉得有必要整理一下。

1.元素访问

--[] :

--at(): 带访问检查(会抛出out_of_range异常)

--迭代器:

指针与数组的关系对string并不成立。string s,  &s[0] 与 s 并不等。

2.初始化与赋值

--不能用字符和整数来初始化字符串;

但是字符可以赋值

string s = 'a'; X            string s;  s = 'a';√

3.到c风格的转换

利用c_str()产生c风格字符串,注意传中的0字符

4.拼接:+

5.插入:

--+=

---append

--insert

6.查找:find及其变种,返回值类型为size_type,没有找到返回npos;

7.替换:replace(可替换可删除),erase

8.子串substr():

C++ 串的更多相关文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(62)-EF链接串加密

    系列目录 前言: 这一节提供一个简单的功能,这个功能看似简单,找了一下没找到EF链接数据库串的加密帮助文档,只能自己写了,这样也更加符合自己的加密要求 有时候我们发布程序为了避免程序外的SQL链接串明 ...

  2. JQuery使用deferreds串行多个ajax请求

    使用JQuery对多个ajax请求串行执行. HTML代码: <a href="#">Click me!</a> <div></div&g ...

  3. iOS 字典或者数组和JSON串的转换

    在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...

  4. iOS:GCD理解1(同步-异步、串行-并行)

    1.并行-异步(ST1与ST2抢占资源) 1-1).获取 并行(全局)队列 ,DISPATCH_QUEUE_PRIORITY_DEFAULT 为默认优先级. dispatch_queue_t queu ...

  5. 关于用sql语句实现一串数字位数不足在左侧补0的技巧

    在日常使用sql做查询插入操作时,我们通常会用到用sql查询一串编号,这串编号由数字组成.为了统一美观,我们记录编号时,统一指定位数,不足的位数我们在其左侧补0.如编号66,我们指定位数为5,则保存数 ...

  6. [LeetCode] Longest Palindrome 最长回文串

    Given a string which consists of lowercase or uppercase letters, find the length of the longest pali ...

  7. [LeetCode] Shortest Palindrome 最短回文串

    Given a string S, you are allowed to convert it to a palindrome by adding characters in front of it. ...

  8. [LeetCode] Palindrome Partitioning II 拆分回文串之二

    Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...

  9. [LeetCode] Palindrome Partitioning 拆分回文串

    Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...

  10. [LeetCode] Longest Palindromic Substring 最长回文串

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

随机推荐

  1. USACO Section 2.2: Subset Sums

    dp题,一碰到dp我基本就是跪,搜了网上的答案分两种,一维和二维. 先讲二维,sum[i][j]表示前i个数的subset里差值为j的分法数量.当加入数字i时,有两种选择,某一个set和另外一个set ...

  2. pyhton小方法

    import osa = os.walk('.') for i in a: print(i)

  3. NDK(11)Android.mk编译APK模板

    转自 :  http://hubingforever.blog.163.com/blog/static/1710405792011656434982/ 以下仅是使用Android.mk编译APK程序的 ...

  4. javascript 一个关于时间排序的算法(一个页面多个倒计时排序)

    上周要做一个活动页面 秒杀列表页 需要一个时间的算法排序 自己琢磨了半天想了各种算法也没搞出来,后来问了下一个后台的php同学 他写了个算法给我看了下 ,刚开始看的时候觉得这就是个纯算法,不能转化成页 ...

  5. leetcode:Compare Version Numbers

    Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 &l ...

  6. 添加crontab为什么要重定向输出到/dev/null

    如果crontab不重定向输出,并且crontab所执行的命令有输出内容的话,是一件非常危险的事情.因为该输出内容会以邮件的形式发送给用户,内容存储在邮件文件 /var/spool/mail/$use ...

  7. HDU 2610 (自己完全找不到思路) Sequence one

    搜索虐我千百遍,我待搜索...好吧,我还木有初恋 题意: 我开始理解题意就理解偏了,Orz 题中有n个元素构成的序列,求出前p个非递减子序列.子序列是先按长度排序的,然后按原序列先后位置排序的. 这里 ...

  8. Vim实现批量注释的方法

    调试代码的时候,免不了要批量注释/取消代码注释,很多IDE都有快捷键将你选中的代码块批量注释/取消注释的功能,那么在Vim里面如何完成这个功能呢? 方法一 块选择模式 批量注释: Ctrl + v 进 ...

  9. ubuntu搭建DNS

    ubuntu搭建DNS 一.     bind简介: BIND是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,主要包括以下三种: *域名服务器 *D ...

  10. [转载]charisma-master 加载慢的原因及解决方法

    [我的总结] 原文中指出的地址有的已经转换,因为版本问题. 所以根据2014年11月获取的charisma-master版本,应做以下更改: 1.charisma-app.css 这个文件中的外链字体 ...