字符串长度函数strlen()
如下是我的测试文件:
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){char str1[10] = "123456789";char str2[10] = "1234567890abcd";char str3[10] = "12345";char str4[10] = "12345 12";char str5[10] = {'1', '2', '3', '4', '\0', '5', '6'};int len1, len2, len3, len4, len5;len1 = strlen(str1);len2 = strlen(str2);len3 = strlen(str3);len4 = strlen(str4);len5 = strlen(str5);printf("str1--> %s, len-->%d\n", str1, len1);printf("str2--> %s, len-->%d\n", str2, len2);printf("str3--> %s, len-->%d\n", str3, len3);printf("str4--> %s, len-->%d\n", str4, len4);printf("str5--> %s, len-->%d\n", str5, len5);printf("====== Game Over ======\n");printf("\n");return 0;}
str1--> 123456789, len-->9str2--> 1234567890123456789, len-->19str3--> 12345, len-->5str4--> 12345 12, len-->8str5--> 1234, len-->4====== Game Over ======
| str1 | 长度是很容易知道的。 |
| str2 |
str2的长度为什么出错了呢?那是因为在分配存储单元的时候"abcd"字符在 str2 长度为10 的存储单元里存放不了了,而它又不能越界分配、存储,因此“abcd”是没有被分配存储单元的,同时 str2 的结尾字符'\0'也没有自动分配,而且str2
是紧邻着 str1 进行分配的,在读取 str2 的时候没有碰到结尾字符 '\0',就会自动地读到 str1 里面的内容,这就形成了str2 截断了 "abcd"同时由接连读取了 str1 的内容,同strlen(str2)的结果是 str1 + str2总的长度。
|
| str3 | 长度也容易理解。 |
| str4 | 注意 str4中的空字符在'5' 和 '1'之间,它是空字符而不是结尾字符'\0',所以 str4 的长度也容易理解。 |
| str5 | 因为我显式地在字符串中增加了一个结尾字符'\0',那么在读取或者判断字符串长度的时候都会从第一个'\0'处结束,那么访问str5的时候会受到第一个 '\0' 的误导。 |
字符串长度函数strlen()的更多相关文章
- php获取字符串长度函数strlen和mb_strlen
php获取字符串长度函数strlen和mb_strlencount() - 计算数组中的单元数目,或对象中的属性个数strlen — 获取字符串长度,一个汉字为3个字符mb_strlen() - 获取 ...
- php中常用的字符串长度函数strlen()与mb_strlen()实例解释
int strlen ( string $string ) int strlen ( string $string ) 获取给定字符串的[字节]长度 成功则返回字符串$string的长度,如果$s ...
- 玩转PHP(一)---php中处理汉字字符串长度:strlen和mb_strlen
注:本文为小编原创,如若转载,请注明出处:http://blog.csdn.net/u012116457/article/details/42536039 今天正式开始学习PHP了,不过小编一不小心就 ...
- php中处理汉字字符串长度:strlen和mb_strlen
PHP内置的字符串长度函数strlen()无法正确处理中文字符串,它得到的只是字符串所占的字节数.对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍 ...
- php 字符串长度函数
php 字符串长度函数 php 字符串长度函数,在php测试字符串长度的函数有二个,一个是strlen,另一个是mb_strlen前一个默认是支持,后一个需要开启一个插件,下面我们来介绍一下二个函数的 ...
- 字符数组函数,连接strcat 复制函数strcpy 比较函数strcmp 长度函数 strlen
之前我们学习数据类型的时候,有一个类型 char ,这个类型允许我们在里边放一个字符 char variable1='o'; char variable2='k'; #include <iost ...
- oracle获取字符串长度函数length()和hengthb()
原文:oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算s ...
- 获取字符串长度函数length()和hengthb()
oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算stri ...
- oracle获取字符串长度函数length()和lengthb()
oracle获取字符串长度函数length()和lengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算st ...
随机推荐
- 在Winform开发框架中,利用DevExpress控件实现数据的快速录入和选择
在实际的项目开发过程中,有好的控件或者功能模块,我都是想办法尽可能集成到我的WInform开发框架中,这样后面开发项目起来,就可以节省很多研究时间,并能重复使用,非常高效方便.在我很早之前的一篇博客& ...
- IIS启动网站出错的几个解决方法
在ASP.NET项目中使用了IIS服务器,由于系统是XP的,而在装系统的时候IIS没有一起装,所以从网上下载的IIS5.0版本(其它版本XP是用不了的).但是在使用的过程中老是出问题,每次调试好后,过 ...
- Java的final关键字详解
Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...
- asp.net的code-Behind技术
新建一个VS.NET下的项目..看到ASPX,RESX和CS三个后缀的文件了吗??这个就是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理. code-Behind:asp.net中的 ...
- 几种web字体格式
目前,文字信息仍是网站最主要的内容,随着CSS3技术的不断成熟,Web字体逐渐成为话题,这项让未来Web更加丰富多彩的技术拥有多种实现方案,其中之一是通过@font-face属性在网页中嵌入自定义字体 ...
- macbook 我们需要买吗
能否写出好代码与是否使用“好”的电脑是没有直接关系的.
- php中的字符串常用函数(四) ord() 获得字符的ascii码 chr()获取ascii码对应的字符
ord('a');//=>97 返回小写a 的ascii码值97 chr(97);//=>a 返回ascii码表上的97对应的 小写a
- 【iOS】Quartz2D信纸条纹
一.前导程序 新建一个项目,在主控制器文件中实现以下几行代码,就能轻松的完成图片在视图中的平铺. - (void)viewDidLoad { [super viewDidLoad]; UIImage ...
- CSS应用内容补充及小实例
一.clear 清除浮动 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- java微信开发(wechat4j)——wechat4j配置文件解读
wechat4j的配置文件是wechat4j.properties.需要放置在项目src目录下.在wechat4j.jar中的META-INF下有一个wechat4j.properties.sampl ...