すべきこと: 入力された文字列グループのすべての数値を取得し、新しい文字が NSMutableString 数値に追加されるたびに出力します。次に、現在の文字が数値でない場合は、+ または x、または *、- であるかどうかを確認します。それらの1つである場合、それを配列に追加して出力します。
何をしているか: 中国語の出力
`Please enter math: 12+56x45
2012-05-02 23:52:06.538 CALC[1921:403] 퀱
2012-05-02 23:52:06.541 CALC[1921:403] 퀱퀲
2012-05-02 23:52:06.542 CALC[1921:403] running array (
"+"
)
2012-05-02 23:52:06.543 CALC[1921:403] 퀱퀲퀵
2012-05-02 23:52:06.544 CALC[1921:403] 퀱퀲퀵퀶
2012-05-02 23:52:06.544 CALC[1921:403] 퀱퀲퀵퀶큸
2012-05-02 23:52:06.545 CALC[1921:403] 퀱퀲퀵퀶큸퀴
2012-05-02 23:52:06.546 CALC[1921:403] 퀱퀲퀵퀶큸퀴퀵`
問題: unichar に関係していると思いますがchar current = [InputString characterAtIndex:i];
、その部分なしでコードを実行すると、else if
正しく動作します。ご覧のとおり、文字列の一部である文字数は予想された数ですが、問題は間違った言語にあるようです。
私のコード:
int main ()
{
char userInput[99];
NSMutableString *number = [NSMutableString string];
int i;
printf( "Please enter math: " );
scanf( "%s", userInput );
fpurge( stdin );
NSString *InputString = [NSString stringWithUTF8String:userInput];
NSMutableArray *broken = [NSMutableArray array];
for (i=0; i < [InputString length]; i++) {
char current = [InputString characterAtIndex:i];
NSString *cur = [NSString stringWithFormat:@"%c" , current];
if (isalnum(current)) {
[number appendString:[NSString stringWithCharacters:¤t length:1]];
NSLog(@"%@", number);
}
else if (current == '+'|| current == 'x'||current == '*'||current == '-') {
[broken addObject:[NSString stringWithFormat:cur]];
NSLog(@"running array %@", broken);
}
}
return 0;
}