2013-09-23 135 views
0

我創建了一個帶有特殊字符的字符串,然後我遍歷另一個NSString並試圖查看是否找到了我感興趣的NSString和新的NSString之間的匹配。然而,rangeOfString似乎有特殊字符的掛斷。帶特殊字符的rangeOfString

基本上這是這個想法,問題是NSLog從來沒有讀過「華友世界」!因爲它找不到平方根符號。

NSString *goal = @"√" 

NSString *input [email protected]"Messing with Sasquatch √" 

int strLength = [input length]; 
int strpos = 0; 
unichar ch = [input characterAtIndex:strpos]; 


while (strpos < strLength) 
{ 
    ch = [input characterAtIndex:strpos]; 

    if ([goal rangeOfString:[NSString stringWithFormat:@"%c",ch]].location != NSNotFound) 
     NSLog(@"Hurray!"); 

    ++strpos; 
} 

謝謝!

+0

掛機?什麼不工作? –

+0

它永遠不會說「萬歲」它永遠找不到sqrt字符 – Meshach

+0

@DavidCaunt任何想法? – Meshach

回答

0

這個問題有什麼不幸的是,我原來是用C寫的,這對於這個目標來說是一種更高效的格式。然而,在這個特殊的例子中,我能夠通過堅持NSString來解決它。

也就是說,我不是移動到char然後返回,而是按如下方式創建了長度爲1的substr。

NSRange subRange = {strpos, 1}; 
NSString *substr = [input substringWithRange:subRange 

然後,在循環中,只使用SUBSTR如下:

if ([goal rangeOfString:substr].location != NSNotFound) 
     NSLog(@"Hurray!");