首页 > 编程知识 正文

字符串长度函数,字符串的长度怎么看

时间:2023-05-03 09:12:31 阅读:20805 作者:4143

字符串长度通常是字符串中包含的字符数,但也可能需要字符串所占的字节数。 获取字符串长度的常用方法如下:

1 .使用sizeof获取字符串长度sizeof的含义很明确,用于获取字符数组的字节数。 当然,也包括结束符“0”。 对于ANSI和UNICODE字符串,格式如下:

Sizeof(cs )/Sizeof () char ) )。

sizeof(ws )/sizeof (wchar _ t ) ) ) ) )。

可以用同样的方法获取字符数。 很明显,如果遇到“中文ABC”这样的MBCS,这种方法是行不通的。 因为sizeof ()不知道哪个char是半个字。

2.strlen ((使用获取字符串长度的strlen ) )和wcslen ) )是标准的c定义函数,分别获取ASCII字符串和宽字符串的长度。 示例:

size _ t strlen (常数字符*字符串);

size _ t wcslen (常数wchar _ t *字符串);

strlen (和wcslen ) )将“0”作为字符串的结尾,并返回不包含“0”的字符数。

3 .使用3.cstring:3360getlength ()获取字符串长度的CStringT由具有函数的CSimpleStringT类继承。

int getlength (常数throw );

GetLength ) )返回字符而不是字节数。 例如,在CStringW中,“中文ABC”的GetLength ()返回5而不是10。 关于MBCS呢? 同样,只能将一个字节作为一个字符来处理。 CStringA表示的“中文ABC”的GetLength )返回7。

4 .使用4.STD:3360string33603360size ()获取字符串长度

basic_string也有获取大小的函数

size_type length () const;

size_type size () const;

length (和size )的功能完全相同,只返回字符而不是字节数。 遇到MCBS时,其工作方式与CStringA:GetLength ()相同。

5._ bstr _ t 33603360 length (_ bstr _ t类的length,使用获取字符串长度)方法可能是获取字符数的最佳方法。 严格来说,_bstr_t并不是一个完整的字符串类,它主要提供bstr类型的封装,但_bstr_t提供length ()函数。

unsigned int length () const throw );

函数返回字符数。 有趣的是,对于MBCS字符串,将返回真正的字符数。

现在就动手

请编写以下程序,体验获取字符串长度的各种方法。

【程序4-8】获取字符串长度的各种方法

01 #include 'stdafx.h '

02 #include 'string '

03 # include ' comutil.h ' 04 # pragma comment (lib,' comsuppw.lib ) )。

05

06 using namespace std;

07

08 int main () )

09 {

10 char s1[]='中文ABC ';

11 wchar_t s2[]=L '中文ABC ';

12

使用13//sizeof获取字符串长度

14printf(sizeofs1:%d「r「n ",sizeof(S1 ) ) 15printf(sizeofs2:%d「r「n ",sizeof ) S2 "

16

使用17//strlen获取字符串长度

18printf(strlen ) S1 ) : % d“r”n,strlen )”19printf(wcslen ) S2 ) : % d“r”n,wcslen )”

20

使用21//cstring:3360getlength (获取字符串长度

22 CStringA sa=s1;

23 CStringW sw=s2;

24

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。