적어도 g ++를 사용하는 strcmp는 많은 아키텍처에 대해 많은 최적화 기능을 제공합니다. 내 PC에서, Core2Duo E8400, strcmp는 straigforward 구현을 사용하는 것보다 2 배 빠릅니다.역 스트링을위한 효율적이고 이식 가능한 strcmp
두 개의 "역 문자열"을 비교하는 함수를 제공하는 라이브러리가 있다면 내 질문에. 역 문자열 char *s1
은 s1
으로 시작하고 일부는 s1-n
으로 끝나며 s1-n == '\0'
(여기서 n >= 0
및 모두 0 <= n' < n, s1-n' != '\0'
)으로 끝납니다.
물론이 기능은 strcmp만큼 효율적이고 이식성이 있어야합니다.
편집 : 두 개의 문자열이 같으면 알아 두어야합니다 (그래서 나는 더 큰 것을 알 필요가 없습니다.) 그런 다음 strcmp에 대한 동일한 optimitzations가 원칙적으로 역 문자열에 대해 잘 작동합니다.
나는 대답이 '아니오'라는 것을 꽤 많이 내기를 기꺼이합니다. 0으로 끝나는 문자열은 일반적입니다. '\ 0 '으로 시작하는 * 문자열은 거의 전례가 없습니다. 그렇다면, 누가 그런 특이한 것들에 대한 도서관을 씁니 까? – MSalters
이것은 내가 본 이상한 요구 사항 중 하나입니다! :) – unwind
나는 그것을 할 수 있다고 확신하지만 그런 구현을 찾을 수 없습니다. 행운을 빕니다. –