Implement strstr(), add strstr test

This commit is contained in:
Andrii Zymohliad
2018-03-12 14:55:02 +08:00
parent 7912332137
commit a1de0ef8a1
5 changed files with 38 additions and 2 deletions
+16 -2
View File
@@ -299,8 +299,22 @@ pub unsafe extern "C" fn strspn(s1: *const c_char, s2: *const c_char) -> c_ulong
}
#[no_mangle]
pub extern "C" fn strstr(s1: *const c_char, s2: *const c_char) -> *mut c_char {
unimplemented!();
pub unsafe extern "C" fn strstr(s1: *const c_char, s2: *const c_char) -> *mut c_char {
let mut i = 0;
while *s1.offset(i) != 0 {
let mut j = 0;
while *s2.offset(j) != 0 && *s1.offset(j + i) != 0 {
if *s2.offset(j) != *s1.offset(j + i) {
break;
}
j += 1;
if *s2.offset(j) == 0 {
return s1.offset(i) as *mut c_char;
}
}
i += 1;
}
ptr::null_mut()
}
#[no_mangle]