来自CFStringCompareWithOptions的奇怪行为

时间:2012-12-17 16:49:42

标签: c++ macos core-foundation cfstring

我正在努力找出如何将字符串的第一个n字符与另一个字符匹配。这是我目前得到的一些代码:

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);

根据文档,我将res的值设为-1,意思是“小于”。当然,既然我指定了匹配的范围,那么只考虑该范围吗?

1 个答案:

答案 0 :(得分:4)

文档可能更清晰,但范围仅适用于第一个字符串,而不是第二个字符串。 Here's a link to an old mailing list message.你无法从存档中看到什么,但我从我的个人档案中知道,那个说苹果工程师的人就是这样。

要做你想做的事,你可能也需要使用CFStringCreateWithSubstring