C++怎么在string提取指定位数的字节?

C++怎么在string提取指定位数的字节?,第1张

string结构有一个成员函数叫substr()可以用它实现。
basic_string::substr
basic_string substr(size_type _Off = 0,size_type _Count = npos) const;
功能:从一个字符复制一个从指定位置开始,并具有指定长度的子字符串。
参数
_Off 所需的子字符串的起始位置。字符串中第一个字符的索引为 0,默认值为0
_Count 复制的字符数目
返回值 一个子字符串,从其指定的位置开始
举一个例子吧
string str = "codoncodon";
所以提取前三个字符,可以用 string str1 = strsubstr(0,3);
提取4-6 string str2 = strsubstr(4,3);
然后7-9 string str3 = strsubstr(7,3);

方法一

假设这个数据写在A1单元格,则在另一个单元格写入公式

=LEFTB(A1,20)

LEFTB

基于所指定的字节数返回文本字符串中的第一个或前几个字符。此函数用于双字节字符。

语法

LEFTB(text,num_bytes)

Text    是包含要提取字符的文本字符串。

Num_bytes   按字节指定要由 LEFTB 所提取的字符数。

方法二

再或者公式写成

=MIDB(A1,1,20)

MIDB

返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。此函数用于双字节字符。

语法

MIDB(text,start_num,num_bytes)

Text    是包含要提取字符的文本字符串。

Start_num    是文本中要提取的第一个字节的位置。文本中第一个字节的 start_num 为 1,以此类推。

Num_bytes    指定希望 MIDB 从文本中返回字符的个数(按字节)。

说明

如果 start_num 大于文本长度,则 MID 返回空文本 ("")。如果 start_num 小于文本长度,但 start_num 加上 num_chars 超过了文本的长度,则 MID 只返回至多直到文本末尾的字符。如果 start_num 小于 1,则 MID 返回错误值 #VALUE!。

如果 num_bytes 是负数,则 MIDB 返回错误值 #VALUE!。

string结构有一个成员函数叫substr()可以用它实现。
basic_string::substr
basic_string substr(size_type _Off = 0,size_type _Count = npos) const;
功能:从一个字符串复制一个从指定位置开始,并具有指定长度的子字符串。
参数
_Off 所需的子字符串的起始位置。字符串中第一个字符的索引为 0,默认值为0
_Count 复制的字符数目
返回值 一个子字符串,从其指定的位置开始
举一个例子吧
string str = "codoncodon";
所以提取前三个字符,可以用 string str1 = strsubstr(0,3);
提取4-6 string str2 = strsubstr(4,3);
然后7-9 string str3 = strsubstr(7,3);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13333118.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存