是否有更好的方法来获取包含数字的正确长度的数组?
我有一个数字数组:0, 0, 1
,我尝试获取它的长度。它显然会中断并返回0
。我是C
的新手,但尝试制作自定义strlen
函数:
int custom_strlen(char *str) {
for(int i = 1; ;i++) {
if (str[i] == 0) {
return i;
}
}
return -47;
}
,但是效率不高,在某些情况下也会返回意外的值。在这种情况下,预期的输出为3。
有没有要使用的功能?
答案 0 :(得分:3)
整数数组不是字符串。 C数组本质上不包含长度信息。 $pattern = '/(?<=^|\/).+?(?=\/|$)/';
$phrases = [];
$y = preg_replace_callback($pattern, function($phrase) use (&$phrases) {
$separator = in_array($phrase[0], $phrases) ? '--' : '-';
$phrases[] = $phrase[0];
return str_replace(' ', $separator, $phrase[0]);
}, trim($x));
的工作方式是C字符串以 null终止,这意味着最后一个字符为strlen
(null字符),该字符为0。否则,将无法知道数组有多长。
我想您可能想做一个NUL
数组。您可以张贴正在使用的阵列吗?
答案 1 :(得分:0)
如上所述,C字符串以null结尾。
唯一的选择是
FWIW,如果它不是以null终止的,它实际上不是C中的字符串,它只是包含字符的内存,而您恰好将其解释为字符串。