#include<string> 与 #include<string.h> 这是两个完全不同的头文件,前者用于C++,后者用于C,一般把这两个头文件都包括进去。 越来越觉得需要对 string 中的一些函数的使用进行一次总结了,这几天碰到了好多关于字符串处理的问题,下面介绍一下 string 中常用的函数;

一、string 类对象的初始化

  string s("Hello !") ;

  string s = "Hell0 !" ;

  string s(10,'a') ;    // 字符串  s 为 : aaaaaaaaaa 10个a

  string s , s = 'a' ;    //将字符 a 赋值给字符串 s ,相当于 s = "a"

二、string 中的 strlen 和 length 函数

  string s1 ;

  char s2[100] ;

  strlen(s2) ;  // 返回字符串 s2 的长度 ;

  s1.length() ;  //返回字符串 s1 的长度 ,相当于 strlen(s1.c_str()) ;

三、string 中的 find 、find_first_of、find_last_of、find_first_not_of、find_last_not_of  函数

  string s("Hello World !") ;

  s.find("o") ;   //  返回的的 o 所在的下标 ;

  s.find("o",5) ;  // 从下标为 5 开始进行查找 ;

  s.append(s , s.find("o") , 3) ;  // 在字符串 s 后面追加 一个字符串("o W") ;

  s.find_fist_of("abc") ;   //返回字符串abc中任意一个字符最先出现的位置

  s.find_last_of("abc") ;  // 返回字符串abc中任意一个字符最后出现的位置

  s.find_first_not_of("acd") ;   //从字符串 s 中进行查找(从前往后),第一个不在字符串 acd 中的位置

  s.find_last_not_of("acd") ;  //从字符串 s 中进行查找(从后往前),第一个不在字符串 acd 中的位置

四、string 中的 erase 函数

  string s("Hello World !") ;

  s.erase(5) ;  // 相当于保留当前长度为 5 ,也相当于s[5] = '\0' ;

五、string 中的 replace 函数

  string s("Hello World !") ;

  s.replace(2,3,"haha") ;  // 从下标为 2 开始 ,将连续的三个字符替换成 字符串 haha ;

  s.replace(2,3,"haha",1,2) ;  从下标为 2 开始 ,将连续的三个字符替换成 字符串 haha 中的 下标为 1 开始的 连续两个字符

六、string 中的 insert 、at 函数

  string s("Hello World !") ;

  s.insert(1 , s ) ;     //在下标为 1 的后面再将 s 插入在其后

  s.insert(1 , s , 1 , 3) ;   // 在下标为 1 的后面将 s 的下标为 1 的连续 3 个字符 插入到 后面

  s.at(1) ;  // 返回下标为 1 所对应的元素,相当于s[1] ;

七、string 中的 c_str 函数

  string s("Hello World !") ;

  printf("%s\n",s.c_str()) ;  //返回传统的 char * 类型的字符串,该字符串以 ‘\0’ 结尾 ;

八、字符数组 中的 strlen、strcat、strcmp 函数

  strlen    返回字符数组的长度

  strcat  连接两个字符数组

  strcmp  比较两个字符数组

九、字符数组中的 strchr 、strstr 函数

  char s[] = {"Hello World !"} ;

  strchr(s , 'o') ;   // 返回字符 o 在字符数组 s 中的位置指针

  strstr(s,"ll") ;   //返回字符串 ll 在字符数组 s 中的位置指针

String VS Cstring(字符串)的更多相关文章

  1. char*、string、CString各种字符串之间转换

    参考博客: http://blog.csdn.net/luoweifu/article/details/20242307 http://blog.csdn.net/luoweifu/article/d ...

  2. C++ 中int,char,string,CString类型转换

      1. c++中string到int的转换 1) 在C标准库里面,使用atoi: #include <cstdlib> #include <string> std::stri ...

  3. 头文件 string.h cstring string 区别

    1.#include <cstring>   //不可以定义string s:可以用到strcpy等函数using   namespace   std; #include <stri ...

  4. C++ 中 int,char*,string,CString之间相互转换-整理

    <多字符集下> #include <string> //使用C++标准库的string类时, 定义时 std::string str; using namespace std; ...

  5. MFC中char*,string和CString之间的转换

    MFC中char*,string和CString之间的转换 一.    将CString类转换成char*(LPSTR)类型 方法一,使用强制转换.例如:  CString theString( &q ...

  6. Cpp读文件、CString转String、String转CString

    场景 C++读取文件 技术点 读取文件 fstream提供了三个类,用来实现c++对文件的操作.(文件的创建.读.写). ifstream -- 从已有的文件读入 ofstream -- 向文件写内容 ...

  7. string与CString对比

    string是标准C++库中的字符串类,CString是在Windows开发环境下常用的字符串类,CString目前已从MFC中分离出来可以单独使用,只需包含atlstr.h即可. 相比string, ...

  8. string string.h cstring 区别

    c++中 string与string.h 的作用和区别 #include  <string.h>  void  main()  {        string  aaa=  "a ...

  9. C++中string和char字符串的异同与使用方法

    C++中string和char声明字符串的异同和使用 string类 必须在头文件中包含<string> 隐藏了字符串的数组性质,可以像处理普通变量那样处理字符串 string类位于名称空 ...

随机推荐

  1. C语言入门(8)——形参与实参

    对于带参数的函数,我们需要在函数定义中指明参数的个数和每个参数的类型,定义参数就像定义变量一样,需要为每个参数指明类型,并起一个符合标识符命名规则的名字.例如: #include <stdio. ...

  2. dataGuard主备库角色切换

    切换顺序: 先主库后备库 --查看主库可切换状态: SQL> select switchover_status from v$database; SWITCHOVER_STATUS ------ ...

  3. 基于Hadoop的大数据平台实施记——整体架构设计

    大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底是否适用于您的组织,至少在互联网上已经被吹嘘成无所不能的超级战舰.好像一夜之间我们就从互联网时代跳跃进了大 ...

  4. xcode -饼状进度条

    界面搭建 创建一个画饼状的类  eatView 集成UIView #import "eatView.h" @implementation eatView // Only overr ...

  5. 优质UI的7条准则(一)

    本文原文来自于 Medium:https://medium.com/@erikdkennedy/7-rules-for-creating-gorgeous-ui-part-1-559d4e805cda ...

  6. 深入理解java虚拟机系列二——垃圾收集算法

    在主流的商用程序语言中大多都是用根搜索算法(GC Roots Tracing)判断对象是否存活,比如java,c#等.当从GC Roots到某个对象不可达,则证明此对象是不可用的,将要被回收. 商业虚 ...

  7. SSH框架的简化

    ---恢复内容开始--- 一.简易化的SSH框架,如图: SSH框架的搭建,我就不多说了. 二.简易的ssh框架的步骤: 1.重新编写applicationContext.xmlwen文件 <一 ...

  8. QML Performance

    1) Limit JavaScript a) inline JavaScript:  内联的JavaScript方法;  1. 将js方法放置在Element内部; 2. 尝试将语句写在一行内; e. ...

  9. 做了一个图片等比缩放的js

    做了一个图片等比缩放的js 芋头 发布在view:8447   今天改了一下博客的主题,发现博客主题在ie6下变样了,后来发现是因为某篇文章里的某个图片太大了撑开了容器,导致样式错位,前几天公司需求里 ...

  10. Ubuntu14.04 64bit安装Android-Studio

    用PPA安装Android-Studio炒鸡简单,墙内亲测可用,就是速度慢了点.(睡觉时开着电脑装-) 安装Android-Studio 打开Terminal,执行: sudo add-apt-rep ...