강의로 돌아가기
sosong

c언어 for문 조건식

char* solution(const char* code) {
char* answer = (char*)malloc(sizeof(code)/2);
char mode = '0';
int t=0;

for (int i=0; code[i]; i++) {
    if (code[i] == '1' && mode == '1') {mode = '0'; continue;}
    else if (code[i] == '1' && mode == '0') {mode = '1'; continue;}

    if (mode == '0' && i%2 == 0) answer[t++] = code[i];
    else if (mode == '1' && i%2 == 1) answer[t++] = code[i];
}

answer[t] = '\0';

if (answer[0] == '\0') return "EMPTY";

return answer;

}

처음에 이렇게 짰는데 실행만 통과하고 제출했을 때는 12, 13 빼고 다 실패했습니다.
그러다 strlen 써서 for문 조건식을 code[i] 에서 i<strlen(code)로 바꿔 해결했는데 code[i]를 쓰면 왜 안되는지 알고 싶습니다.

1 개의 답변
낙방여우

code[i]의 값이 뭔데요?

  • sosong

    주어진 문자열의 인덱스에 해당하는 값이요. 질문글이 잘못되서 수정했습니다

    sosong―2025.02.09 22:55
  • sosong

    아 다시 해보니까 되네요 할당 크기 문제였던거 같습니다

    sosong―2025.02.09 23:09
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.