• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

16분대에 나온 예제에서 && a[i] != '\0'은 무얼 뜻하나요?

20.08.12 18:29 작성 조회수 179

1

안녕하세요.

 아래 코드의 while문에서 && a[i] != '\0'는 어떠한 역할을 하나요?

&& a[i] != '\0'를 넣고 빼고 두 경우 모두 디버깅을 해보았지만 어떤 경우에서도 차이점을 찾지 못하겠습니다.

while문에서 && a[i] != '\0'을 넣는 이유가 무엇인가요?

fgets으로 1234를 입력했다면

실제로 입력되는것은 1234\n\0이라서 인가요?

#define _CRT_SECURE_NO_WARNINGS
#include 


int main(void)
{
	char a[20];
	fgets(a, 20, stdin);
	int i = 0;
	while (a[i] != '\n' && a[i] != '\0')
	{
		i++;
	}
	if (a[i] == '\n')
		a[i] = '\0';
	fputs(a, stdout);
	return 0;
}

답변 2

·

답변을 작성해보세요.

2

Hello Yeo님의 프로필

Hello Yeo

2020.08.13

상황을 한정하면 사실 \n 를 만나면 종료되니 따로 필요하진 않아보이는군요.
string의 끝이 일반적으로 '\0'이니 이 경우를 생각하신게 아닐까 싶습니다.

0

thd2tn님의 프로필

thd2tn

2021.09.02

입력이 n-1개 즉, 작성해주신 코드로 보시면 입력이 19개이상 되면 buffer에 '\n'을 포함한 다른 문자들이 남게되므로 buffer를 지워주는 while문을 뒤에 나오는 예제에 추가하시는데 그 부분과 관련있지 않을까 생각합니다..