`
iwebcode
  • 浏览: 2045045 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

常用字符串长度计算函数

 
阅读更多

字符串的长度通常是指字符串中包含字符的数目,但有的时候人们需要的是字符串所占字节的数目。常见的获取字符串长度的方法包括如下几种。
1.使用sizeof获取字符串长度
sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0)。对于ANSI字符串和UNICODE字符串,形式如下:

  • sizeof(cs)/sizeof(char)
  • sizeof(ws)/sizeof(wchar_t)
  • 可以采用类似的方式,获取到其字符的数目。如果遇到MBCS,如”中文ABC”,很显然,这种办法就无法奏效了,因为sizeof()并不知道哪个char是半个字符。
    2.使用strlen()获取字符串长度
    strlen()及wcslen()是标准C++定义的函数,它们分别获取ASCII字符串及宽字符串的长度,如:
    
    
  • size_tstrlen(constchar*string);
  • size_twcslen(constwchar_t*string);
  • strlen()与wcslen()采取\0作为字符串的结束符,并返回不包括\0在内的字符数目。
    3.使用CString::GetLength()获取字符串长度
    CStringT继承于CSimpleStringT类,该类具有函数:
    
    
  • intGetLength()constthrow();
  • GetLength()返回字符而非字节的数目。比如:CStringW中,”中文ABC”的GetLength()会返回5,而非10。那么对于MBCS呢?同样,它也只能将一个字节当做一个字符,CStringA表示的”中文ABC”的GetLength()则会返回7。
    4.使用std::string::size()获取字符串长度
    basic_string同样具有获取大小的函数:
    
    
  • size_typelength()const;
  • size_typesize()const;
  • length()和size()的功能完全一样,它们仅仅返回字符而非字节的个数。如果遇到MCBS,它的表现和CStringA::GetLength()一样。
    5.使用_bstr_t::length()获取字符串长度
    _bstr_t类的length()方法也许是获取字符数目的最佳方案,严格意义来讲,_bstr_t还称不上一个完善的字符串类,它主要提供了对BSTR类型的封装,基本上没几个字符串操作的函数。不过,_bstr_t 提供了length()函数:
    
    
  • unsignedintlength()constthrow();
  • 该函数返回字符的数目。值得称道的是,对于MBCS字符串,它会返回真正的字符数目。
    现在动手
    编写如下程序,体验获取字符串长度的各种方法。
    【程序 4-8】各种获取字符串长度的方法
    
    
  • 01#include"stdafx.h"
  • 02#include"string"
  • 03#include"comutil.h"
  • 04#pragmacomment(lib,"comsuppw.lib")
  • 05
  • 06usingnamespacestd;
  • 07
  • 08intmain()
  • 09{
  • 10chars1[]="中文ABC";
  • 11wchar_ts2[]=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(s1));
  • 19printf("wcslen(s2):%d\r\n",wcslen(s2));
  • 20
  • 21//使用CString::GetLength()获取字符串长度
  • 22CStringAsa=s1;
  • 23CStringWsw=s2;
  • 24
  • 25printf("sa.GetLength():%d\r\n",sa.GetLength());
  • 26printf("sw.GetLength():%d\r\n",sw.GetLength());
  • 27
  • 28//使用string::size()获取字符串长度
  • 29stringss1=s1;
  • 30wstringss2=s2;
  • 31
  • 32printf("ss1.size():%d\r\n",ss1.size());
  • 33printf("ss2.size():%d\r\n",ss2.size());
  • 34
  • 35//使用_bstr_t::length()获取字符串长度
  • 36_bstr_tbs1(s1);
  • 37_bstr_tbs2(s2);
  • 38
  • 39printf("bs1.length():%d\r\n",bs1.length());
  • 40printf("bs2.length():%d\r\n",bs2.length());
  • 41
  • 42return0;
  • 43}
  • 输出结果:
    sizeof s1: 8
    sizeof s2: 12
    strlen(s1):7
    wcslen(s2):5
    sa.GetLength(): 7
    sw.GetLength(): 5
    ss1.size(): 7
    ss2.size(): 5
    bs1.length(): 5
    bs2.length(): 5
    分享到:
    评论

    相关推荐

      C++不使用变量求字符串长度strlen函数的实现方法

      在C++编程语言中,`strlen`函数是一个用于计算字符串长度的常用工具,它返回一个字符串(以空字符'\0'结尾)中的字符数量。在标准库`<cstring>`中定义,`strlen`函数通常的使用方式是`strlen("example string")`,这...

      TIA博途WINCC的触摸屏VB脚本入门(Len函数获取字符串长度以及Right和Left函数).docx

      Len函数是VBScript中用于计算字符串长度的内置函数,它返回字符串中的字符数量。而Right和Left函数则用于从字符串的右侧或左侧截取指定长度的子字符串。这些都是在编写TIA博途WINCC的VB脚本时处理字符串数据非常实用...

      常用字符串处理函数

      除了上述函数,C++标准库还提供了其他字符串处理函数,如`strlen`(计算字符串长度)、`strncpy`(安全版本的字符串拷贝,可以指定拷贝的字符数)、`strncat`(限制长度的字符串连接)、`strstr`(在一个字符串中...

      Shell脚本中计算字符串长度的5种方法

      这是一个非常直接且简洁的方法,适合大多数场景下的字符串长度计算。 **示例代码**: ```bash expr length "abc" ``` 这段代码同样会输出3,即字符串 `"abc"` 的长度。 #### 方法3: 使用`awk`获取域的个数 `awk` ...

      字符串操作封装函数

      除此之外,作者可能还封装了其他高级功能,比如检查字符串是否符合特定模式(如邮箱、电话号码格式),计算字符串长度,对字符串进行编码和解码,以及处理Unicode字符等。 在实际应用中,封装字符串操作函数的好处...

      pb函数库之字符串操作函数

      下面是pb函数库中的一些常用字符串操作函数: 1. Fill()函数:Fill()函数可以建立一个由指定字符串填充的指定长度的字符串。其语法为Fill(chars, n),其中chars是指定用于重复填充的字符串,n是指定由该函数返回的...

      常用的字符和字符串处理类函数

      ### 三、字符串长度函数 #### LENGTH 函数 - **功能**:返回字符串的长度(包括空格)。 - **语法**:`LENGTH(字符串表达式)` - **示例**: ```sql SELECT DISTINCT LENGTH(address) FROM customers; ``` ### ...

      C语言中常用的字符串处理函数

      以下是对给定文件中提到的常用字符串处理函数的详细解析: 1. **`memset`**: 函数原型为`void* memset(void* dest, int c, size_t count);`。此函数用于将`dest`指向的前`count`个字节设置为字符`c`。`dest`必须是...

      VB字符串处理函数_字符串处理函数_VB_

      本资料主要汇总了VB中的常用字符串处理函数,适用于初学者学习和参考。 1. **Left()** 函数:返回字符串的左部指定长度的部分。例如,`Left("Hello World", 3)` 返回 "Hel"。 2. **Right()** 函数:与Left()相反,...

      acm常用字符串处理函数

      这里我们将深入探讨一些常用的字符串处理函数,并通过具体的示例来理解它们的使用。 首先,`strstr()`函数是C语言标准库中的一个字符串搜索函数。它用于在一个字符串(haystack)中查找另一个字符串(needle)的...

      串的基本操作堆存储表示:初始化串、复制串、判断串是否为空、比较两个字符串、计算字符串长度、清空串、连接串、找子串、模式匹配、替换子串、插入和删除子串

      5. **计算字符串长度**: `strlen()`函数是C语言标准库中的函数,它计算字符串的长度,但不包括结束的空字符'\0'。 6. **清空串**: 清空字符串通常意味着设置其所有字符为0,但这并不改变字符串的长度。若要释放...

      VB常用字符串函数整理

      本文将详细介绍VB中常用的字符串函数,帮助开发者更好地理解和应用这些函数。 首先,`Len`函数用于计算字符串内的字符数目或变量所占的字节数。例如,`Len("example")`将返回7,表示"example"中有7个字符。对于非...

      字符串处理函数列表,字符串处理函数列表

      23. strlen:计算字符串的长度,即直到遇到空字符('\0')为止的字符数。 24. strncasecmp:不区分大小写地比较两个字符串的前n个字符。 25. strncat:连接两个字符串,但只复制最多n个字符。 26. strncmp:比较两...

      常见的获取字符串长度的方法

      本文将详细介绍几种常用的获取字符串长度的方法,包括这些方法的工作原理、适用场景以及潜在的限制。 ### 一、使用`sizeof`获取字符串长度 `sizeof`运算符是一种基本的C/C++语法,用于计算数据类型或变量的字节数...

      C语言,C++字符串处理函数

      字符串长度计算函数 `Str_Len` ```c int Str_Len(char Str2[]) { int i = 0; while (Str2[i] != 0) i++; return i + 1; } ``` 该函数用于计算字符串的长度(包括结束符 `\0`)。它通过遍历字符串直至遇到结束符...

      PHP字符串长度计算 - strlen()函数使用介绍

      总的来说,`strlen()`适用于简单的字符串长度计算,尤其是英文和单一字节编码的字符串。而当处理包含多字节字符的字符串,特别是中文字符串时,应优先使用`mb_strlen()`以确保得到准确的字符数。正确理解和使用这两...

      一些常用的字符串处理函数集合

      bgk_strlen函数(双字节字符串长度) **函数定义**: ```c int bgk_strlen(const char *str); ``` **功能**: 求双字节字符串的实际长度。 **实现示例**: ```c int bgk_strlen(const char *str) { const char *...

      字符串长度函数strlen和mb_strlen的区分示例介绍_.docx

      本文旨在深入探讨PHP中两种常用的字符串长度计算函数:`strlen`与`mb_strlen`。我们将从基本概念入手,通过实例演示这两种函数的区别,并讨论它们在不同场景下的应用。 #### strlen函数概述 `strlen`函数是PHP中最...

      一个C语言常用字符串操作函数库.zip

      它是计算字符串长度的必备工具。 5. **strstr()**: 在字符串中查找子串。如果找到子串,返回子串的指针;否则返回NULL。 6. **strchr()** 和 **strrchr()**: `strchr()` 在字符串中查找指定字符的第一个出现,而`...

    Global site tag (gtag.js) - Google Analytics