2012-12-17 2 views
3

문자열의 첫 번째 문자 n과 다른 문자를 정확히 일치시키는 방법을 찾으려고합니다. 여기이 순간에있어 몇 가지 코드입니다 : 의미CFStringCompareWithOptions의 이상한 동작

CFStringRef myStringRef = CFSTR("hello"); 
CFStringRef otherStringRef = CFSTR("helloworld"); 

CFIndex cmpChars = CFStringGetLength(myStringRef); 

CFComparisonResult res = CFStringCompareWithOptions(myStringRef, otherStringRef, CFRangeMake(0, cmpChars), kCFCompareCaseInsensitive); 

printf("Res: %i\n", (int)res); 

내가 -1res의 가치를 '보다'문서에 따라. 확실하게, 일치시킬 범위를 지정 했으므로 그 범위를 고려해야합니다.

답변

4

문서가 더 선명 할 수 있지만 범위는 첫 번째 문자열에만 적용되고 두 번째 문자열에는 적용되지 않습니다. Here's a link to an old mailing list message. 아카이브에서 알 수 없지만 내 개인 아카이브에서 알 수있는 것은 Apple 엔지니어였던 사람이었습니다.

원하는대로하려면 CFStringCreateWithSubstring을 사용해야 할 수도 있습니다.

+0

누군가 궁금해하는 경우에, NSString의'compare : options : range :'도 마찬가지입니다. https://gist.github.com/4325317 –