VC++中截取字符串的方法

    在VC++编程中,我们有时会遇到关于截取字符串的问题,对于CString类型字符串的截取VC++中有现成的函数可供使用,主要是:CStringMid (int nFirst, int nCount);和BOOL AfxExtractSubString (CString&rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = 10);这两个函数。

    这两个函数非常好用,而且值得一说的是,其中的AfxExtractSubString函数并未公开,在MSDN中也差不到相关的说明,但是在MSDN的例子里却常常出现,非常好用。下面先解释一下这两个函数:

    ⑴  CStringMid (int nFirst,int nCount);

    函数功能:此函数从目标CString对象中提取一个长度为nCount个字符的子串并返回,从nFirst(从零开始的索引)指定的位置开始。

    nFirst:开始位置(索引)。

    nCount:提取长度。

    ⑵  BOOL AfxExtractSubString (CString&rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = 10);

    函数功能:此函数从目标字符串lpszFullString中,根据分割标志chSep,取出第iSubString个子串,放入结果串rString

    下面将结合一个从目标字符串中以空格为分割标志截取所有关键词的实例,来详细说明(完整的实例程序可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/5415583):

    ⑴  目标字符串:

m_str = "说 谎 鼻子 会 变 长";

    ⑵  利用Mid函数计算目标串中关键词的个数:

int tmplen=0; // 关键词个数
for (int i=0;i<m_str.GetLength();i++)
{
	if (m_str.Mid(i,1)==' ')
	{
		tmplen++;
	}
}

    ⑶  利用AfxExtractSubString函数截取所有的关键词:

CString* gjcArray=new CString [tmplen]; // 保存所有关键词的字符串数组
for (int i=0;i<tmplen;i++)
{
	AfxExtractSubString(gjcArray[i], m_str, i, ' ');
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python截取字符串方法非常简单易懂,你只需要使用字符串的索引即可实现。 1. 从头开始截取 要从头开始截取字符串,你可以使用字符串的切片操作。假设你有一个字符串叫做text,你可以在其后面加上方括号并指定起始位置和结束位置来获取想要截取的字符串,如下所示: text = "hello world!" sub_text = text[0:5] print(sub_text) 上面这段代码会输出"hello"。其,0表示字符串的开始位置,而5则是需要截取的字符串的结束位置。 如果你只想截取字符串的前几个字符,可以在方括号里只填写一个数字: text = "hello world!" sub_text = text[:5] print(sub_text) 上面这段代码也会输出"hello"。 2. 从尾部开始截取 有时你可能需要从字符串的结尾开始截取,这时你可以使用负数索引。例如,如果你想从字符串的倒数第5个字符开始截取,可以这样写: text = "hello world!" sub_text = text[-5:] print(sub_text) 上面这段代码会输出"world!"。其,-5表示倒数第5个字符的位置,而空的结束位置则意味着截取到字符串的结尾。 3. 按照指定步长截取 在实际应用,你可能还需要按照指定步长截取字符串的一部分内容。这时你可以在切片操作加上第三个参数,表示每隔几个字符进行截取。例如,如果你想每隔2个字符截取一次,可以这样写: text = "hello world!" sub_text = text[::2] print(sub_text) 上面这段代码会输出"hlowrd"。其,第一个冒号表示从字符串的开始位置开始截取,第二个冒号则表示每隔2个字符截取一次。 总之,截取字符串在Python非常简单,你只需要使用切片操作即可轻松实现。如果你希望深入了解字符串的操作方法,不妨多看看官方文档和相关教程。 ### 回答2: 在Python编程语言截取字符串方法比较简单,主要有以下几种方式: 1. 使用切片方法 在Python,可以使用切片方法截取字符串。切片方法是Python特有的一种语法,可以通过指定起始位置和结束位置截取字符串的一部分。 例如: ```python string = "Hello, World!" sub_string = string[0:5] # 截取字符串的前5个字符 print(sub_string) # 输出结果为"Hello" ``` 在上述例子string表示被截取的字符串,0表示截取字符串的起始位置,5表示截取字符串的结束位置(不包括第5个字符)。这里需要注意的是,Python字符串下标都是从0开始的。 2. 使用split()方法 Python的split()方法能够将一个字符串按照指定的字符分割成多个子字符串,并将这些子字符串存储到一个列表。 例如: ```python string = "apple, banana, orange" sub_string = string.split(",") # 按照逗号分割字符串 print(sub_string) # 输出结果为["apple", " banana", " orange"] ``` 在上述例子string表示被截取的字符串,","表示分割字符串的标志,split(",")表示按照逗号分割字符串。这里需要注意的是,split()方法返回的结果是一个列表,而不是字符串。 3. 使用字符串方法 在Python还可以使用字符串方法截取字符串,例如字符串方法find()、index()、replace()、strip()等。 例如: ```python string = " Hello, World! " sub_string = string.strip() # 去除字符串两端的空格 print(sub_string) # 输出结果为"Hello, World!" ``` 在上述例子string表示被截取的字符串,strip()表示去除字符串两端的空格。这里需要注意的是,strip()方法仅能去除字符串两端的空格,无法去除字符串间的空格。如果需要去除字符串间的空格,可以使用replace()方法或split()方法。 ### 回答3: 在Python截取字符串可以使用切片操作来进行。切片操作是指根据某个规律从一个序列获取一部分元素的操作。字符串是一种序列类型,因此也可以使用切片操作进行截取。 对于一个字符串s,可以使用s[start:stop:step]这种格式进行切片操作。其start表示从哪个位置开始截取,默认为0;stop表示截取到哪个位置,但不包括该位置所在的字符;step表示步长,即每隔几个字符截取一次,默认为1。 示例代码如下: ```python s = 'hello, world!' # 截取前5个字符 print(s[:5]) # 输出:'hello' # 截取从第7个字符到第12个字符 print(s[6:12]) # 输出:'world' # 每隔2个字符截取一次 print(s[::2]) # 输出:'hlo ol!' # 倒叙截取 print(s[::-1]) # 输出:'!dlrow ,olleh' ``` 需要注意的是,切片操作并不会改变原字符串,而是返回一个新的字符串。另外,如果截取的位置超出了字符串的长度,Python会自动忽略掉超出部分的字符。 除了切片操作外,Python还提供了一些内置函数和方法来进行截取操作,比如: - split()方法:根据指定的分隔符将字符串分割成多个子字符串,并返回一个列表; - strip()方法:去掉字符串开头和结尾的指定字符(默认为空格),并返回一个新的字符串; - replace()方法:将字符串的某个子串替换成另一个字符串,并返回一个新的字符串。 示例代码如下: ```python s = 'hello, world!' # 使用split方法分割字符串 print(s.split()) # 输出:['hello,', 'world!'] # 使用strip方法去掉开头和结尾的空格 print(' hello, world! '.strip()) # 输出:'hello, world!' # 使用replace方法替换字符串 print(s.replace('world', 'Python')) # 输出:'hello, Python!' ``` 总之,在Python截取字符串方法有很多种,可以根据具体的需求选择合适的方法进行操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值