diff --git a/src/string/src/lib.rs b/src/string/src/lib.rs index 9ab7818826..f2bb99ac5d 100644 --- a/src/string/src/lib.rs +++ b/src/string/src/lib.rs @@ -344,7 +344,7 @@ pub extern "C" fn strtok(s1: *mut c_char, delimiter: *const c_char) -> *mut c_ch let token = HAYSTACK; HAYSTACK = strpbrk(token, delimiter); if !HAYSTACK.is_null() { - HAYSTACK.write(0 as c_char); + HAYSTACK.write(0); HAYSTACK = HAYSTACK.add(1); } else { HAYSTACK = ptr::null_mut(); diff --git a/tests/expected/string/strtok.stdout b/tests/expected/string/strtok.stdout index 4e58193c85..201357e8cb 100644 --- a/tests/expected/string/strtok.stdout +++ b/tests/expected/string/strtok.stdout @@ -1,2 +1,2 @@ I'd_just_like_to_interject_for_a_moment.__What_you're_referring_to_as_Linux, -is_in_fact,_GNU/Linux,_or_as_I've_recently_taken_to_calling_it,_GNU_plus_Linux. \ No newline at end of file +is_in_fact,_GNU/Linux,_or_as_I've_recently_taken_to_calling_it,_GNU_plus_Linux. diff --git a/tests/string/strtok.c b/tests/string/strtok.c index 59abe9eca1..9809fdf054 100644 --- a/tests/string/strtok.c +++ b/tests/string/strtok.c @@ -7,8 +7,10 @@ int main(int argc, char* argv[]) { char* token = strtok(source, " "); while (token) { - printf("%s_", token); - token = strtok(NULL, " "); + printf("%s", token); + if (token = strtok(NULL, " ")) { + printf("_"); + } } return 0;