这样查找子字符串的方式可行吗?有没有更有效率的方法?将
在while语句中是否需要使用
(这是一个类别方法,因此要在self中搜索字符串。)
NSString
转化为c字符串时应该使用哪种编码?在while语句中是否需要使用
()!=NULL
,虽然它似乎可以正常工作,但当没有找到任何其他出现时,它会跳出循环。- (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中搜索字符串。)