C++ STL库里有很多与字符串操作相关的函数,熟练应用STL,字符串的处理将变得轻松、自在。

字符串截取函数:

1CString Left( int nCount ) const;    //从左边1开始获取前 nCount 个字符

2CString Mid( int nFirst ) const;    //从左边第 nCount+1 个字符开始,获取后面所有的字符

3CString Mid( int nFirst, int nCount )
const;
   //从左边第 nFirst+1 个字符开始,获取后面  nCount 个字符

4CString Right( int nCount ) const;    //从右边1开始获取从右向左前 nCount 个字符

注:在函数后面加 const 的意思是:如果一个类声明了一个常量对象,这个对象只能使用后边带 const 这个的方法.

例:

 CString a,b;

 a = "123456789";

 b = a.Left(4);   //值为:1234

 b = a.Mid(3);    //值为:456789

 b = a.Mid(2, 4); //值为:3456

 b = a.Right(4);  //值为:6789

字符串小写转大写函数:

1void
MakeUpper();
   //这个函数可以将CString字符转化为一个大写的字符串。

例:

  // example for CString::MakeUpper

  CString s( "abc" );

  s.MakeUpper();

  ASSERT( s == "ABC" );

字符串查找函数:

1find()

查找第一次出现的目标字符串:

/*

* Author:  mybestwishes

* Created Time:  2011/4/9 15:56:44

* File Name: find.cpp

*/

#include
<iostream>

#include <cstdio>

using namespace std;



int main(){

     string s1 = "abcdef" ; 

     string s2 = "de" ;

     int ans = s1.find(s2) ; //在s1中查找子串s2

     cout<<ans<<endl;

     system("pause");

}

说明:如果查找成功则输出查找到的第一个位置,否则返回-1 ;

查找从指定位置开始的第一次出现的目标字符串:

/*

* Author:  mybestwishes

* Created Time:  2011/4/9 15:56:44

* File Name: find.cpp

*/

#include
<iostream>

#include <cstdio>

using namespace std;



int main(){

     string s1 = "adedef" ; 

     string s2 = "de" ;

     int ans = s1.find(s2,2) ; //从s1的第二个字符开始查找子串s2

     cout<<ans<<endl;

     system("pause");

}

2find_first_of()

查找子串中的某个字符最先出现的位置。find_first_of()不是全匹配,而find()是全匹配

/*

* Author:  mybestwishes

* Created Time:  2011/4/9 15:56:44

* File Name: find.cpp

*/

#include
<iostream>

#include <cstdio>

using namespace std;



int main(){

     string s1 = "adedef" ; 

     string s2 = "dek" ;

     int ans = s1.find_first_of(s2) ; //从s1的第二个字符开始查找子串s2

     cout<<ans<<endl;

     system("pause");

}

其中find_first_of()也可以约定初始查找的位置:
 s1.find_first_of(s2 , 2) ;

3find_last_of()

这个函数与find_first_of()功能差不多,只不过find_first_of()是从字符串的前面往后面搜索,而find_last_of()是从字符串的后面往前面搜索。可以自行测试一下。

4rfind()

反向查找字符串,即找到最后一个与子串匹配的位置。

5find_first_not_of()

找到第一个不与子串的位置。

参考:http://mawenhao19930620.blog.163.com/blog/static/12857536120113935636277/

   http://blog.sina.com.cn/s/blog_9d4b5dd601013k9e.html#commonComment

C++函数CString类常用函数的更多相关文章

  1. CString转换成int CString类相应函数

    CString 型转化成 int 型 把 CString 类型的数据转化成整数类型最简单的方法就是使用标准的字符串到整数转换例程. 虽然通常你怀疑使用_atoi()函数是一个好的选择,它也很少会是一个 ...

  2. C++string类常用函数

    C++string类常用函数 string类的构造函数:string(const char *s);    //用c字符串s初始化string(int n,char c);     //用n个字符c初 ...

  3. php部分---函数、四类常用函数、例子(下拉菜单添加内容);

    1.简单函数 四要素:返回类型,函数名,参数列表,函数体 function Show() { echo "hello"; } Show(); 2.有返回值的函数 function ...

  4. String 类的实现(3)String类常用函数

      2 #include<iostream> 3 #include<stdio.h> 4 #include<assert.h> 5 #include <iom ...

  5. mysql九大类常用函数

    一.数学函数 ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然对数的底)的x次方 ...

  6. java 中java.util.Arrays类---常用函数记录

    java.util.Arrays主要是用来对数组进行操作的类,主要包括以下方法: 1.数组转化列表,得到固定大小的列表,Arrays.asList(...): public static <T& ...

  7. String 类 常用函数

    构造方法摘要: String(byte[] bytes)           通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String. String(char[] value) ...

  8. 新手C#string类常用函数的学习2018.08.04

    ToLower()用于将字符串变为小写,注意字符串的不可变特性,需要重新赋值给另一个字符串变量. s = s.ToLower();//字符串具有不可变性,转换后需要重新赋值,不可仅有s.ToLower ...

  9. C++调用全局函数与类成员函数

    void testfunc(void *param) { printf("\n\tcall global function %s\n", param); } void *GetCl ...

随机推荐

  1. oracle数据库如何创建用户并授予角色

    目标:1.  创建角色test1_role,  授予 CREATE PROCEDURE, CREATE SEQUENCE, CREATE SYNONYM, CREATE TABLE, CREATE T ...

  2. Convert Excel data to MDB file

    所需组件: microsoft ado ext. 2.8 for ddl and security 或者更新的组件. 添加: using ADOX;using System.Runtime.Inter ...

  3. 使用VS2013逆向生成UML类图

    引自http://blog.csdn.net/funnyfu0101/article/details/7705173 首先.打开工程,[体系结构]->[新建关系图] 生成一个类图 然后[体系结构 ...

  4. SQL存储过程-新增和修改,参数Xml数据类型

    输入参数:xml数据类型  功能:新增和修改  --value() 方法从 XML 中检索 rogue 属性值.然后将该值分配给 int 变量. --将 Member 节点拆分成多行 SELECT T ...

  5. Android动态加载学习笔记(一)

    前言 上周五DPAndroid小分队就第二阶段分享内容进行了讨论,结果形成了三个主题:性能优化.动态加载.内核远离.我选择的是第二项——动态加载.在目前的Android开发中,这一部分知识还是比较流行 ...

  6. java 静态方法和实例方法的区别(转)

    静态方法和实例方法的区别主要体现在两个方面:   在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这 ...

  7. SVN show log failed

    Q: SVN 不能显示日志 能正常update, commit,但是show log的时候报错 A:可能原因是服务器权限配置问题 修改配置文件svnserve.conf 和 authz, 修改前请先备 ...

  8. 微信小程序--摸索之旅

    首先 奉上腾讯官方文档 方便参考:https://mp.weixin.qq.com/debug/wxadoc/design/index.html  个人认为没说啥特别有用的信息(可能是我看的太粗糙了) ...

  9. 嵌套 QQ、微博 通讯工具到HTML中

    自己QQ.微博的实例: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Defa ...

  10. MVC执行过程

    HttpRuntime中的PR方法1,封装HttpContext2,获取HttpApplication 主要做3件事a,执行本事件时主要调用Init将Global编译得到类型,b,确保Appstart ...