标签:
C语言的字符串要注意最后一位默认是‘/0‘的问题。这是一个易错点。
strlen()计算长度时不考虑末尾的‘\0‘
//例1 void test1() { char string[10]; char* str1 = "0123456789"; strcpy( string, str1 ); }
void test2() { char string[10], str1[10]; int i; for(i=0; i<9; i++) { str1[i] = ‘a‘; } str1[9] = ‘\0‘;//体现水平的一步 strcpy( string, str1 ); }
有的时候可能非常容易忽略这个小问题:
//例2 void test3(char* str1) { if(str1 == NULL){ return ; } char string[10]; if( strlen( str1 ) <= 10 ) { strcpy( string, str1 ); } }
这里if( strlen( str1 ) <= 10 )应该写成if( strlen( str1 ) < 10 ),因为strlen的结果未统计’\0’所占用的1个字节。
标签:
原文地址:http://www.cnblogs.com/zywscq/p/5361945.html