1

我慢してください。Objective 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 回出力されます。

4

1 に答える 1

6

初期化したことがないので、それnumberを呼び出す-appendString:と、 に追加するだけnilで、結果がnil返されます。2行目でこれを試してください:

NSMutableString *number = [NSMutableString string];

Nowは空の文字列オブジェクトであり、まったくオブジェクトではないnumberbeing とは大きく異なります。nil

于 2012-05-02T23:33:16.457 に答える