1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/// # strlen
/// Returns str.len().
///
/// This function has no reason to exist.
///
/// ## Example
/// ```
/// assert_eq!(ft::strlen("abc"), 3);
/// assert_eq!(ft::strlen("\0bc"), 3);
/// ```
pub fn strlen(s: &str) -> usize {
  return s.len();
}

/// # strlen_naive
/// Returns amount of sumbols to first null-symbol in the string.
///
/// ## Example
/// ```
/// assert_eq!(ft::strlen_naive("abc"), 3);
/// assert_eq!(ft::strlen_naive("a\0c"), 1);
/// ```
pub fn strlen_naive(s: &str) -> usize {
  let c: Vec<char> = s.chars().collect();
  let mut i: usize = 0;

  while i < c.len() && c[i] != '\0' {
    i += 1;
  }

  return i;
}