栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言之字符串长度

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言之字符串长度

strlen函数
字符串长度就是它所包含的字符个数。我们很容易通过对字符进行计数来计算字符串的长度。库函数strlen的原型如下:

size_t strlen(char const *string);

警告:
注意strlen返回的是一个类型为size_t的值。这个类型是在头文件stddef.h中定义的,它是一个无符号整数类型。在表达式中使用无符号数可能导致不可预料的结果。例如:下面两个表达式看上去是相等的:

if(strlen(x)>=strlen(y))...
if(strlen(x)-strlen(y)>=0)...

但是事实上它们是不相等的。第一个语句按照我们预想的那样工作,但是第二个语句的结果将永远是真。strlen的结果是个无符号数,所以操作符>=左边的表达式也将是无符号数,而无符号数绝不可能是负的。

#include 

size_t strlen(char const *string)
{
	int length;
	for(length=0;*string++!='';)
	{
		length+=1;
	}
	return length;
}

注意:
表达式中如果包含了有符号数和无符号数,可能会产生奇怪的结果。和前一对语句一样,下面两条语句并不相等,其原因相同。

if(strlen(x)>=10)...
if(strlen(x)-10>=0)...

如果把strlen的返回值强制转换为int,就可以消除这个问题。

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037247.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号