질문에 앞서..

  1. 문제를 정확하게 이해 하고 문제의 예시를 통과했는가? YES
  2. 다른 질답글을 읽었으며 해당 내용과 그 해답에 대해서 보았는가? YES
  3. 혼자서 다른 예제를 10개이상 만들어보고 테스트 해보았는가? YES

근데 안됩니다.

또륵... 왜그럴까요..

djm03178   5년 전

  1. 최대 10글자를 %s를 입력받으려면 배열의 크기는 최소 11 이상이어야 합니다.
  2. 10글자씩 입력이 안 들어오더라도 아래와 같은 케이스에서 틀립니다.

아하 해결했습니다. 근데 문제와는 관련없는 질문하나 여쭤봐도 되나요? 답변과 관련한건데,

10글자를 입력받으려면 배열의 크기는 최소 11이상이라고 하셨잖아요.

배열은 0번부터 시작하니까

0 1 2 3 4 5 6 7 8 9 10 해가지고 총 11개가 아닌가요?

위와같이 입력했을때 arr[10] 은 제외하고 0~9까지 10개라고 뜨는걸로 이해하고 있는데

왜 arr[10]은 안되고 arr[11]은 되는지 알려주시면 감사하겠습니다,,

jaehoo1   5년 전

10글자를 입력받으려면 배열의 크기는 최소 11이상이라고 하셨잖아요.

글자, 즉 문자열을 입력받을때는 끝에 null문자(\0)를 같이 받습니다.

입력 : aaaaaaaaaa

char str[10];

scanf("%s", str);//에러

char str[11];

scanf("%s", str);

이렇게하면 str[0]~str[9]에는 'a'가 저장되고, str[10]에 null문자가 저장됩니다

아~~~~ 저는 null까지 받는건 알고 있었는데 그거를 str[10]의 경우에 str[10]이라는 공간에 받아서 str[0] 부터 str[9]까지는 다 쓸수 있는줄 알았는데 그게 아니었군요.

답변 정말 감사드립니다!

댓글을 작성하려면 로그인해야 합니다.