C字符串末尾的'\0'问题
C语言的字符串要注意最后一位默认是'/0'的问题。这是一个易错点。
strlen()计算长度时不考虑末尾的'\0'
//例1
void test1()
{
char string[];
char* str1 = "";
strcpy( string, str1 );
}
void test2()
{
char string[], str1[];
int i;
for(i=; i<; i++)
{
str1[i] = 'a';
}
str1[] = '\0';//体现水平的一步
strcpy( string, str1 );
}
有的时候可能非常容易忽略这个小问题:
//例2
void test3(char* str1)
{
if(str1 == NULL){
return ;
}
char string[];
if( strlen( str1 ) <= )
{
strcpy( string, str1 );
}
}
这里if( strlen( str1 ) <= 10 )应该写成if( strlen( str1 ) < 10 ),因为strlen的结果未统计’\0’所占用的1个字节。
C字符串末尾的'\0'问题的更多相关文章
- sql server2005版本中,len函数计算了字符串末尾的空格
		sql server2005版本中,len函数计算了字符串末尾的空格的长度,以下是测试脚本: print @@version declare @v varchar(max) set @v = 'hp, ... 
- NYOJ1026 阶乘末尾非0 【模板】
		阶乘末尾非0 时间限制:2000 ms | 内存限制:65535 KB 难度:3 描写叙述 我们的问题非常是简单.n! 末尾非0数是几? 比方n=5的时候,n! =120,那么n!末尾非0数是2. ... 
- 求N!末尾的0的个数(找规律+递归)
		0\'s Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 计算整数n!(n的阶乘)末尾有多少个0. 输入 第一行输入一个数T代 ... 
- PHP导出Excel 数字末尾变0或小数点解决办法
		为了管理方便,查阅直观性.很多网站, 或者系统都会自带导出excel或者cvs的功能.但是很多情况下,由于数字超过15位,会被显示成0或者加小数点处理.造成这种情况是由于Excel内 置的数值有效范围 ... 
- java去除字符串后面的\0
		java去除字符串后面的\0 private String filterCode(String string) { if (string != null) { string = string.trim ... 
- 五、excel末尾补0和开头补0
		1.末尾补0 假设数据在A列,则在B1输入以下公式 如果长度不足10,在后面加0,否则等于A1 (1)=IF(LEN(A1<17),LEFT(A1&"0000000000&qu ... 
- c语言中strcpy与strlen函数对字符串最后的'\0'的处理
		对于strcpy来说,它会把字符串最后的‘\0’一起拷贝 对于strlen来说,它计算字符串长度的时候不会把最后的‘\0’计算进去 
- Shell脚本中字符串判空:使用-z 字符串长度为0时,为真,-n字符串长度不为0,为真。这两个都不靠谱【转】
		最近发现使用 -z 和 -n 来判断字符串判空,或不空时,很不靠谱. 使用下面的方法最可靠: if [ "x${value}" == "x" ] ... 
- Light oj 1138 - Trailing Zeroes (III) 【二分查找 && N!中末尾连续0的个数】
		1138 - Trailing Zeroes (III) problem=1138"> problem=1138&language=english&type=pdf&q ... 
随机推荐
- linux下robotframework执行测试用例的几种方法
			1.执行指定的测试用例文件(Test Suite) [root@localhost cases]# pybot purge.txt 2.执行整个porject目录下的所有测试用例 ... 
- MySQL系列:innodb源代码分析之线程并发同步机制
			innodb是一个多线程并发的存储引擎,内部的读写都是用多线程来实现的,所以innodb内部实现了一个比較高效的并发同步机制. innodb并没有直接使用系统提供的锁(latch)同步结构,而是对其进 ... 
- 数据结构(Java语言)——Stack简单实现
			栈是限制插入和删除仅仅能在一个位置上进行的表.该位置是表的末端,叫做栈的顶top.对栈的基本操作有进栈push和出栈pop,前者相当于插入.后者这是删除最后插入的元素. 栈有时又叫先进先出FIFO表. ... 
- myql5.7.7优化配置參数
			# Other default tuning values # MySQL Server Instance Configuration File # ------------------------- ... 
- hdu1081   最大子矩阵
			最大子矩阵自然直在最大连续子序列的升级版 只是其原理都是用到了动态规划思想 仅仅是矩阵用到了枚举 +合并 把非常多列看成是一列的和 #include<stdio.h> ... 
- Ubuntu下安装和编译ffmpeg
			参考:http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu 1.安装依赖包 sudo apt-get update sudo apt-get -y ... 
- eclipse.ini配置文件
			Eclipse安装Maven插件后,Eclipse启动问题:Maven Integration for Eclipse JDK Warning. 解决方法: 1. 设置Eclipse使用的JRE为本 ... 
- java操作pdf
			使用pdf模板生成pdf 1,工具 Adobe Acrobat X Pro 2,pom文件配置 <dependency> <groupId>com.itextpdf</g ... 
- struts2 文件上传和下载,以及部分源代码解析
			struts2 文件上传 和部分源代码解析,以及一般上传原理 (1) 单文件上传 一.简单介绍 Struts2并未提供自己的请求解析器,也就是就Struts2不会自己去处理multipart/form ... 
- HDFS源码分析心跳汇报之BPServiceActor工作线程运行流程
			在<HDFS源码分析心跳汇报之数据结构初始化>一文中,我们了解到HDFS心跳相关的BlockPoolManager.BPOfferService.BPServiceActor三者之间的关系 ... 
