2015-02-07 2 views
0

Может ли кто-нибудь объяснить мне, как вызвать следующую функцию, чтобы найти длину массива? Благодаря!Поиск длины массива с использованием этой функции

int len(char* s) 
{ 
    int k = 0; 
    while (*s) 
    { 
     k++; 
     s++; 
    } 
    return k; 
} 
+0

Как назвать эту функцию? Write 'len (s)' where 's' является указателем на массив символов. – emlai

+1

Эта функция не может определить длину массива. Это выглядит как (плохая) замена для 'strlen()' хотя, что дает вам длину строки в стиле C. Использование строк в стиле C - это первое, что нужно избавиться от изучения C++, хотя ... –

ответ

2

«может кто-нибудь объяснить мне, как вызвать эту функцию, чтобы найти длину массива?»

Вы можете назвать это как этот

char* array = "Hello World!"; 
int length = len(array); 
+0

Это именно то, что я искал! Спасибо –

1

Эта функция не поможет найти длину всего любого массива - только некоторые очень специфические:

  • Она должна быть массив char,
  • Он должен иметь отличные от нуля значения во всех его элементах, кроме последнего
  • Последний элемент массива должен быть равен нулю.

В C массивы, такие как, которые создаются, когда вы это делаете:

char array[] = "12345"; 

Это массив из шести элементов символов, с пятью начальными элементами занимают ненулевых кодов символов, а шестой элемент занятой нулем.

Теперь алгоритм становится ясно: рассчитывать элементы, пока не достигнут ноля, включают в себя ноль в счете, и возвращает результат:

char array[] = "12345"; 
int res = len(array); 
+0

И вы пропустите, что он не будет работать ни для * const * array. – Jarod42