计算机符串长度的函数,常用字符串长度计算函数
字符串的长度通常是指字符串中包含字符的数目,但有的时候人们需要的是字符串所占字节的数目。常见的获取字符串长度的方法包括如下几种。
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_t strlen( const char *string );
size_t wcslen( const wchar_t *string );
strlen()与wcslen()采取“0作为字符串的结束符,并返回不包括“0在内的字符数目。
3.使用CString::GetLength()获取字符串长度CStringT继承于CSimpleStringT类,该类具有函数:
int GetLength( ) const throw( );
GetLength()返回字符而非字节的数目。比如:CStringW中,"中文ABC"的GetLength()会返回5,而非10。那么对于 MBCS呢?同样,它也只能将一个字节当做一个字符,CStringA表示的"中文ABC"的GetLength()则会返回7。
4.使用std::string::size()获取字符串长度
basic_string同样具有获取大小的函数
size_type length( ) const;
size_type size( ) const;
length()和size()的功能完全一样,它们仅仅返回字符而非字节的个数。如果遇到MCBS,它的表现和CStringA::GetLength()一样。
5.使用_bstr_t::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获取字符串长度
14 printf("sizeof s1: %d“r“n", sizeof(s1)); 15 printf("sizeof s2: %d“r“n", sizeof(s2));
16
17 //使用strlen获取字符串长度
18 printf("strlen(s1): %d“r“n", strlen(s1)); 19 printf("wcslen(s2): %d“r“n", wcslen(s2));
20
21 //使用CString::GetLength()获取字符串长度
22 CStringA sa = s1;
23 CStringW sw = s2;
24
计算机符串长度的函数,常用字符串长度计算函数相关推荐
- java中索引超出怎么办_Java-字符串索引超出范围异常“字符串索引超出范围”
我是新来的java,并通过询问我确信什么是愚蠢的问题来咬牙切齿.我创建了一些方法,只是简单地打电话给他们.主要方法中的while循环出现错误.编译器说"线程主java.lang.String ...
- TIA博途WINCC的触摸屏VB脚本入门(Len函数获取字符串长度以及Right和Left函数)
TIA博途WINCC的触摸屏VB脚本入门(Len函数获取字符串长度以及Right和Left函数) 首先,建立一个项目,并添加一个HMI,入下图所示,新建一个HMI变量表,添加如下几个HMI内部变量, ...
- c语言中字母的长度是,c语言字符串长度怎么算
本文收集整理关于c语言字符串长度怎么算的相关议题,使用内容导航快速到达. 内容导航: Q1:c语言计算字符串的长度(用指针) 12345678910111213141516171819#include ...
- C++常用字符串长度计算函数
字符串的长度通常是指字符串中包含字符的数目,但有的时候人们需要的是字符串所占字节的数目.常见的获取字符串长度的方法包括如下几种. 1.使用sizeof获取字符串长度sizeof的含义很明确,它 ...
- mysql中字符串拼接函数_MySQL 字符串连接CONCAT()函数
MySQL字符串连接函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符 ...
- python字符串的内置函数_python——字符串内置函数
当字符串本身就含有\n之类的,可以用转义符.行显示(在字符串引号前面加r).repr(str)三种方法. 字符串内置方法 字符串内置方法: 1. capitalize(...) S.capitaliz ...
- php中的替换函数,php字符串中替换函数是什么
php字符串中替换函数有两种,分别是:1.substr_replace函数,用于把字符串的一部分替换为另一个字符串:2.str_replace函数,能够使用一个字符串替换字符串中的另一些字符. 本文操 ...
- python关于字符串的内置函数_Python 字符串内置函数(二)
# 2.格式化相关 # ljust(width) 函数 获取固定长度,左对齐,右边不够用空格补齐 # rjust(width) 函数 获取固定长度,右对齐,左边不够用空格补齐 # center(wid ...
- python uppercase函数_字符串-短rot13函数-Python
字符串-短rot13函数-Python 我正在Python中寻找一个简短而又酷的rot13函数;-)我已经写了这个函数: def rot13(s): chars = "abcdefghijk ...
- c++语言获得字符长度,c++怎么获取字符串长度?
C++获取字符串长度 strlen()函数 函数 strlen()是一个常规函数,他接受一个 C-风格字符串作为参数,并返回字符串包含的字符数. 参数必须是字符型指针(char*).当数组名作为参数传 ...
最新文章
- C# Task的用法
- 智能循迹小车_智能机器人之循迹小车——循迹原理
- 操作系统(三十六)动态分区分配算法
- C# HttpWebRequest提交数据方式
- python2与python3共存_【python】--python2与python3 共存
- 北斗有 35 颗卫星,而 GPS 有 24 颗卫星,为什么二者数量不同?
- (回溯4)部分全排列
- java xml amp_Javaamp;Xml教程(十一)JAXB实现XML与Java对象转换
- /bin/false /sbin/nologin
- linux操作系统基础与实训教程,清华大学出版社-图书详情-《Linux操作系统基础与实训教程》...
- 本周ASP.NET英文技术文章推荐[03/04 - 03/10]
- sas rename重命名_如何使用sp_rename命令在SQL Server中重命名表
- CentOS的 ifconfig/mail/traceroute命令不存在
- unity animator 动画 结束后保持位移_Unity动画系统详解9:Target Matching是什么?
- 安卓端gis_通图采集手机版(GIS数据采集软件)V1.31 安卓版
- caffee学习——图像切割
- 输入输出工具技术(ITTO)要背吗?——软考高项笔记8
- 位、字符、字节、有什么区别
- 苹果手机配对手表总是显示服务器,苹果手表配对失败,为什么iwatch跟手机总是配对...
- ExecutorCompletionService