嘿傢伙,所以我想學習客觀的c作爲我的學校的獨立研究,我的一個項目只是練習是製作一個計算器程序,用戶輸入一串數字和運算符,該程序將其分解並進行計算。現在我有了輸入,我試着讓它找到運算符,並將它們全部放入數組中,以便它們可以對它們進行排序以找到操作順序並使用索引來查找不同的項;然而,當我嘗試打印數組以查看它是否保存字符時,它會輸出一些怪異的符號,如蘋果徽標或倒過來的問號。我對我的問題做了一個SSCCE - 有誰知道發生了什麼事?Objective C Char陣列問題
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSString *calculation;
char str[50] = {0};
int count = 0;
NSLog(@"What would you like to calculate?");
scanf("%s", str);
calculation = [NSString stringWithUTF8String:str];
for (int i = 0; i < [calculation length]; i++) {
NSRange range = NSMakeRange (i, 1);
if([[calculation substringWithRange: range] isEqualToString: @"*"] ||
[[calculation substringWithRange: range] isEqualToString: @"/"])
count++;
}
char operators[count];
for (int i = 0; i < count; i++) {
for (int j = 0; j < [calculation length]; j++) {
NSRange range = NSMakeRange (j, 1);
NSString *s = [s initWithString:[calculation substringWithRange: range]];
if([s isEqualToString:@"*"]){
operators[i] = '*';
break;
}
if([s isEqualToString:@"/"]){
operators[i] = '/';
break;
}
}
NSLog(@"%c", operators[i]);
}
}
return 0;
}
你爲什麼不使用'-characterAtIndex':
易修復,雖然,只需更換
s
分配這件事? –