判断一个字符串的长度,怎么用函数判断?

php判断某个字符串的长度是否在指定区间内。 在这种情况下,可以使用strlen函数。

但是,在PHP的函数中,strlen和mb_strlen都是通过计算字符串所占的字节数来计算长度,中文所占的字节数根据编码情况而不同。 在GBK/GB2312中,中文字符占2字节,而在UTF-8中,中文字符占3字节。

在确定字符串的长度时,通常需要确定字符数,而不是字符串所占的字节数。 例如,UTF-8下的PHP代码:

那么,有什么方便实用的方法可以得到包含中文字符串的长度呢? 可以使用正则表达式计算中文字符的个数。 用GBK/GB2312编码除以2,用UTF-8编码除以3,最后加上非中文字符串的长度。 但这太麻烦了。 WordPress有更漂亮的代码。 参考如下。

在正则表达式中将字符串拆分为单个字符,然后在count中直接计算匹配的字符数,就可以得到我们想要的结果。

其中有一个是用来判断长度的 size()

不过我有个不明白的地方...它是怎么判断字符串到哪结束的呢?
而且这种字符串里面是可以有'\0'这个字符的....

真搞不懂它是怎么判断的...有哪位高人能帮忙一下....谢了先

std::string的实现中包含了一个数据成员, 用以跟踪现有字符个数
通常还不只一个地址外加一个长度——有兴趣的话看看源码

内部存放char* 输出中以'\0'作为结束符号
但是模板处理str构造时确定了大小元素个数
其中既没有消灭又没有产生
当然还是元素个的数目 size不是strlen来再次计算结束符前个数

因为给string赋值的时候,就保存了这个len啊,所以以后只要取这个len就是长度了。

比如說 string裡面應該也有一個char* 指針之類得。。。
就需要一個一個讀取 跟\0判斷 然後長度累加 直到遇到\0...

不過 我沒有去詳細了解string得內部實現...

我要回帖

更多关于 用于返回字符串的长度函数是 的文章

 

随机推荐