Objective C解析打嗝

Osm*_*man 1 c objective-c ios

请多多包涵.我完全是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);
    }
}
Run Code Online (Sandbox Code Playgroud)

对于我的生活,我似乎无法弄清楚为什么它会保持打印2012-05-02 19:23:20.935 CALC[1447:403] (null)而不是它遇到的每个数字的数值.因此,例如,如果输入的字符串中有5个数字,它将打印5次.

and*_*n22 6

你从来没有初始化 - number所以当你打电话-appendString:给它时,你只是追加nil,结果就是nil回来了.试试这个你的第二行:

NSMutableString *number = [NSMutableString string];
Run Code Online (Sandbox Code Playgroud)

现在number是一个空字符串对象,它与存在完全不同nil,它根本就不是对象.