2012-05-02 7 views
1

私に同行してください。私はObjective Cを除いて、Cにはまったく新しいものですが、私は単純ではないが動作しないようなことをしようとしています。私はシンボルも含む数字の文字列をスキャンしています。ミニ関数が入力文字列を通るとき、新しい文字列に数字が追加されます(これは演算子として私自身のやり方で電卓を書いて​​います)。今は始めの部分とスキャンをしています文字列と追加文字。目的のCの解析ヒザック

char userInput[99]; 
NSMutableString *number = nil; 
int i; 

printf("Please enter math: "); 
scanf("%s", userInput); 
fpurge(stdin); 

NSString *InputString = [NSString stringWithUTF8String:userInput]; 

for (i=0; i < [InputString length]; i++) { 
    char current = [InputString characterAtIndex:i]; 
    if (isalnum(current)) { 
     [number appendString:[NSString stringWithCharacters:&current length:1]]; 
     NSLog(@"%@ ", number); 
    } 
} 

私はそれではなく、それは全体の来る各番号の数値の2012-05-02 19:23:20.935 CALC[1447:403] (null)を印刷し続ける理由を把握することができないように私の人生のために:ここに私のコードです。たとえば、入力された文字列に5つの数字がある場合、それは5回印刷されます。

答えて

6

あなたはnumberを初期化したことがない、-SOあなたがそれに-appendString:を呼び出すとき、あなただけのnilに追加していて、結果はちょうどnilバックです。 2番目の行のためにこれを試してみてください:

NSMutableString *number = [NSMutableString string]; 

今すぐnumberは全く問わないnilを、あることから非常に異なっている、空の文字列オブジェクトです。

+0

ありがとうございます!それはそれだった。愚かな私! – Osman

関連する問題