
正确的答案是5,题目选项有误。首先strlen()函数返回的长度
是不包含'\0',
第一个字符为:a
第二个字符为:b
第三个字符为:\n (换行符)
第四个字符为:2
第五个字符为:\ (\\转义为\)
所以答案为5。
(下图为实际代码演示)
扩展内容:strlen()函数(C语言函数):
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串
开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。 参考资料:
字符串的长度通常是指字符串中包含字符的数目,但有的时候人们需要的是 字符串所占字节的数目。常见的获取字符串长度的方法包括如下几种。
1使用sizeof获取字符串长度
sizeof的含义很明确,它用以获取 字符数组的字节数(当然包括结束符\0)。
2使用strlen()获取字符串长度
strlen()及wcslen()是标准C++定义的函数,它们分别获取ASCII字符串及宽字符串的长度。
3使用CString::GetLength()获取字符串长度
CStringT继承于CSimpleStringT类。
首先要分清楚:字符数组和字符串的关系。
字符串存放在数组中,因此,一个字符数组可以存放几个串,单字符串函数只认字符串结束标志'\0'。
1 strlen(wer wer):字符串为"wer_wer"这种字符串常量,系统会在其后自动补上'\0';而求字符串长度的函数strlen()只要遇见'\0';就返回函数值!而且'\0'不算在其中!故返回值为7(空格也算一个字符!)
2 strlen(wer\0wer) 其中的字符串为"wer\0wer"而strlen函数遇到'\0'即结束,故返回值为:3
3 '\0'不是空格,也不是回车!通过ASCII码表,你可知道,'\0'是ASCII码值代表0(NULL);而空格的ASCII码为: '\32' 32 回车的ASCII码值为'\13' 13string str="welcome to chaina!";
int m1=strsize();//求字符串长度或者下面的
int m2=strlength(); //同上面size功能一样,都是求字符串长度的
1、首先新建一个php文件,命名为testphp。
2、在testphp文件内,定义两个字符串,一个纯英文字符串,另一个中英文混合的字符串。
3、使用strlen()方法统计长度,从执行程序结果可见,strlen()方法统计$Str1的字符串长度是正确的,统计第二个字符串$Str2的长度是错误的。
4、新建一个utf8_strlen()函数,定义其参数为$string,默认为null。
5、在utf8_strlen()函数内,使用preg_match_all()方法通过正则表达式拆分字符串,并保存在$match变量中,最后,通过count()方法统计得到的数组元素的个数,将结果返回。
6、使用utf8_strlen()方法分别统计$Str1,$Str2字符串的长度,并使用echo将结果输出到页面中。
7、在浏览器运行testphp文件,查看程序执行的结果,从两个结果可以看出成功实现了统计字符串的长度。


评论列表(0条)