안녕하세요 여러분, 제 학교에 대한 독립적 인 학습으로 객관적인 C를 배우려고하고 있습니다. 단지 연습을위한 프로젝트 중 하나는 사용자가 숫자와 연산자 문자열을 입력하는 계산기 프로그램을 만드는 것입니다. 프로그램은 그것을 분해하고 계산을합니다. 지금 나는 입력 값을 가지고 있으며, 연산자를 찾아서 배열에 넣으므로 연산 순서를 찾고 연산자를 정렬하여 인덱스를 사용하여 다른 용어를 찾을 수 있습니다. 그러나 배열을 인쇄하여 글꼴을 보유하고 있는지 확인하려고하면 사과 로고 또는 거꾸로 물음표와 같은 이상한 기호가 출력됩니다. 내 문제에 대한 SSCCE를 만들었습니다 - 무슨 일이 일어나는 지 아는 사람이 있습니까?목표 C 문자 배열 문제
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;
}
:하지만
쉬운 수정, 그냥이 함께
s
할당을 교체? –