CString截取字串方法

C中CString类型好像没有像string.SubString(parame)这样类似的函数来从字符串中直接分离子串,但是我们可以借助CString的几个函数来实现。

在CString中有Find(),Delete(),Left(),Right(),Mid()就可以实现分离子串的目的了。

intFind( TCHAR ch ) const;

找到给定的字符返回它在字符串中对应的索引号;没有找到就返回-1。

intDelete( int nIndex, int nCount = 1);

返回值是被删除前的字符串的长度,nIndex是第一个被删除的字符索引,nCount是一次删除几个字符。当nCount过大,没有足够的字符删除时,此函数不执行。

CStringLeft( int nCount ) const;

返回的字符串是前nCount个字符。

CStringMid( int nFirst ) const;

CStringMid( int nFirst, int nCount ) const;

nCount代表要提取的字符数, nFirst代表要提取的开始索引位置

CStringRight( int nCount ) const;

返回的字符串是后nCount个字符。

简例:

CStringstr(”MyNameIsRenZheng”);

CStringstr1, str2, str3;

intx,y;

x=str.Find(_T("N"));   //2

y=str.Delete(0,5);  // 16

str1 =str.Left(3);   // MyN

str2 =str.Mid(11, 4);  //Zhen。注意,第二个参数是代表子串的长度

str3 =str.Right(3);  // eng

假使有CString str=_T("My name is Ren Zheng");

按空格提取子串可以采用如下方法:

CStringstr=_T("My name is Ren Zheng");

CArray<CString,CString>strArray;  //定义一个CString类型的动态数组,用来存取CString类型对象。

while(str.Find(_T(" "))+1)//当找不到空格时返回-1,所以这里我用它返回值加1来循环

{

strArray.Add(str.Left(str.Find(_T(“”))));//找到空格的索引,截取空格左边的字符串,并将它添加到strArray动态数组中。

str.Delete(0,str1. GetLength_r()+1);//返回删除空格和其左边的字符串的得到的新字符串。

}

strArray.Add(str);//最后加上经过最终删除后剩下的字符串;

这样按空格分离出的子串就都存储在动态CString类型的数组对象strArray中去了,现在就可以用strArray. Get_r(i)来得到每个子串;


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`CString`类是MFC(Microsoft Foundation Classes)中的一个字符串类,它提供了许多方法用于返回字符串的子串。 以下是一些常用的方法来返回`CString`对象的子串: 1. `Left`:返回从字符串开头开始的指定长度的子串。 ```cpp CString str = "Hello, World!"; CString subStr = str.Left(5); // subStr = "Hello" ``` 2. `Right`:返回从字符串末尾开始的指定长度的子串。 ```cpp CString str = "Hello, World!"; CString subStr = str.Right(6); // subStr = "World!" ``` 3. `Mid`:返回从指定位置开始的指定长度的子串。 ```cpp CString str = "Hello, World!"; CString subStr = str.Mid(7, 5); // subStr = "World" ``` 4. `Mid`(重载):返回从指定位置开始的剩余子串。 ```cpp CString str = "Hello, World!"; CString subStr = str.Mid(7); // subStr = "World!" ``` 5. `MidLeft`:返回从字符串开头开始指定长度的子串。 ```cpp CString str = "Hello, World!"; CString subStr = str.MidLeft(5); // subStr = "Hello" ``` 6. `MidRight`:返回从字符串末尾开始指定长度的子串。 ```cpp CString str = "Hello, World!"; CString subStr = str.MidRight(6); // subStr = "World!" ``` 7. `SpanExcluding`:返回从字符串开头开始,不包含指定字符集中任何字符的子串。 ```cpp CString str = "Hello, World!"; CString subStr = str.SpanExcluding(",!"); // subStr = "Hello" ``` 8. `SpanIncluding`:返回从字符串开头开始,包含指定字符集中的所有连续字符的子串。 ```cpp CString str = "Hello, World!"; CString subStr = str.SpanIncluding("Helo"); // subStr = "Hello" ``` 这些方法都返回一个新的`CString`对象,其中包含原始字符串的子串。使用这些方法可以轻松地从一个`CString`对象中提取所需的子串

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值