1 #import <Foundation/Foundation.h>
2
3 int main(int argc, const char * argv[]) {
4 @autoreleasepool {
5 //查找字符串
6 NSString *str1=@"abcdef";
7 NSString *str2=@"abc";
8 NSRange range1=[str1 rangeOfString:str2];//从str1字符串中找str2字符串出现的位置
9 NSLog(@"位置为:%ld,长度为:%ld",range1.location,range1.length);//打印结果:位置为:0,长度为:3
10 NSLog(@"%@",NSStringFromRange(range1));//location=0, length=3
11
12 NSString *str3=@"k";
13 NSString *str4=@"aakcckdd";
14 //求字符串str3在str4第一次出现的位置
15 NSRange r1=[str4 rangeOfString:str3];//rangeOfString 如果找不到,location为NSNotFound,length为0
16 //计算第一次str3在str4出现的位置并从此位置向后找,剩下的长度为str4总长度减去已经找到第一个所在位置的长度
17 //(r1.location+r1.length):表示第一次查找到符合的位置
18 //str4.length-(r1.location+r1.length):表示从上次查找到得位置起到最后所剩的长度
19 NSRange r2= {(r1.location+r1.length),str4.length-(r1.location+r1.length)};
20 NSLog(@"第一次出现的位置为:%ld,长度为:%ld",r1.location,r1.length);//结果为:2,1
21 NSLog(@"第二次开始查找的位置为:%ld,需要查找的长度为:%ld",r2.location,r2.length);//结果为:3,5
22 //查找第二次str3在str4中出现的位置
23 NSRange range2=[str4 rangeOfString:str3 options:0 range:r2];
24 NSLog(@"第二次出现的位置为:%ld,长度为:%ld",range2.location,range2.length);//结果为:5,1
25
26 //NSRange 结构体
27 /* typedef struct _NSRange {
28 NSUInteger location; 位置
29 NSUInteger length; 长度
30 } NSRange;
31 */
32
33 }
34 return 0;
35 }