R C 도서에서 K-& 연습 5-4를하려고합니다. 나는 strncpy와 strncat에 대한 메소드를 작성했지만, strncmp 부분에 대해 정확히 무엇을 리턴해야 하는지를 정확히 이해하고있다.strncmp C 연습 문제
(K & R 책의 부록 B에서) strncmp의 정의는 다음과 같습니다
이은 문자열 t에 문자열의 대부분의 n 문자에 비교; < 0의 경우 <톤, 0의 경우 ==의 t, 또는 > 경우는 0을 반환의 >t
내가 3 개 문자열이 있다고 가정하자 :
char s[128] = "abc"
char t[128] = "abcdefghijk"
char u[128] = "hello"
을 그리고 나는를 사용하여 비교하려는 strncmp 함수 작성해야합니다. 나는 그것을 알고있다
strncmp(s, t, 3)
는 abc == abc이기 때문에 0을 반환한다. 내가 혼란스러워하는 곳은 다른 비교들입니다. 예를
strncmp(s, t, 5) and
strncmp(s, u, 4)
첫 번째는 제 3 회 위치를 일치하고 그 후에 더 이상 일치하지 두 번째 예는 전혀 일치하지 않는하십시오.
정말 2 가지 비교 결과가 무엇인지 알기를 바랍니다. 그래서 왜 strncmp의 버전을 작성하고 연습을 마칠 수 있는지 알고 싶습니다.
strncmp를 호출하는 프로그램을 작성할 수없는 이유가 있습니까? –
나는 프로그램을 만들었지 만 돌아온 값이 왜 돌아 왔는지 이해하지 못했습니다. 대답을 아는 것이 왜 그 대답인지 아는 것만 큼 중요합니다. 나는이 개념을 정말로 이해하고 싶다. – Koby
당신의 질문이 말하는 것은 아닙니다. "나는 그 두 가지 다른 비교가 무엇을 반환 하는지를 정말로 알고 싶습니다."라고 말합니다. –