<分区>
这是查找子字符串出现次数的可接受方法吗?可以提高效率吗?从 NSString
到 c 字符串应该使用什么编码?
我不是 100% 确定 while 语句中的 ()!=NULL
,它似乎工作正常,并且当没有发现更多事件时,它确实会中断 while循环。
- (NSUInteger)occurenceOfString:(NSString *)substring {
const char *substr = [substring cStringUsingEncoding:NSUTF8StringEncoding];
const char *selfstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
unsigned long substrlen = strlen(substr);
NSUInteger count = 0;
char * ptr;
while ((ptr = strstr(selfstr, substr)) != NULL && substr != '\0') {
count++;
substr += substrlen + *ptr;
}
return count;
}
(这是一个分类方法,所以搜索的字符串是self)。