问题描述
- 关于strlen函数的一个不解
-
char arr[]={1,2,3,4,5,6,7,8};
cout<<strlen(arr);为什么以上语句输出的值是19?
解决方案
两种定义方式:
char arr[9] = {'1', '2', '3', '4', '5', '6', '7', '8'}
char arr[] = {'1', '2', '3', '4', '5', '6', '7', '8', ''} //明确以''结尾。
意识没有加单引号,二是没有以''结尾。
具体原因就不太清楚了。
解决方案二:
因为strlen()函数是根据''来判断字符数组结束的,也是根据它来计算长度的。若定义时没有“”,则会从数组的存储位置开始直到找到一个空字符,并得到所谓的字符串长度
解决方案三:
应该说你这个代码犯了几个错误。
就这段代码来说,不应该用strlen,应该用sizeof(arr)
如果想用strlen,那么就应该写成char arr[9]={1,2,3,4,5,6,7,8};
时间: 2024-09-14 23:27:20