이 함수는 Strtoul_inner 함수를 감싸서 변환에 필요한 조정 작업을 수행한다. 공백은 무시하고, 부호를 검사하고, base 매개변수가 0일 경우에 밑을 조정하고, 0 또는 0x라는 접두어가 붙으면 건너뛴다. 또한 음수 부호가 있을 때는 unsigned long 연산에 맞게 결과에 대한 부호를 적절히 바꾸는 작업도 한다.Exs 11
Strtoul은 string.h에서 제공하는 스트링 탐색 함수 중 하나인 strspn을 이용하여 공백을 건너뛴다. 이 함수는 두 번째 매개변수에 나온 모든 문자로 구성된 첫 번째 매개변수의 초기 시퀀스의 길이를 리턴한다. strcspn(여기서 ‘C’는 ‘complement’를 의미) 함수와 비슷하지만, 두 번째 인수에 없는 문자 시퀀스를 탐색한다는 점이 다르다.
이 헤더는 메모리와 스트링 탐색 함수를 다양하게 제공하는데, 바로 memchr, strchr, strpbrk, strrchr, strstr, strtok 등이다. 이 함수를 사용하려면 아직 제대로 배우지 않은 포인터가 필요하므로 지금은 이 함수를 사용하지 않는다.
Exs 11 Strtoul에 필요한 find_prefix 함수를 구현해 보자.