간단한 문자열 비교인데요..

toold의 이미지

while(1)
{
	while((addr[i++]=getchar()) != '\n');
	addr[i] = '\0';
	i=0;
	printf("%d\n", strlen(addr));
	if(!strncmp(addr, "bye", 3)) break;
}

문자열을 입력받고.. bye라고 치면 루프를 탈출하는 간단한건대요..
위와 같이하면 byes 라고 쳐도 탈출하잖아요..
그래서
if(!strcmp(addr, "bye")) break;
위와 같이 했는데...bye라고 쳐도 루프를 탈출하지 못하네요..
왜 그런거죠..ㅠ.ㅠ..

amister의 이미지

addr[] 에 \n 까지 들어가버리는군요. addr[i - 1] = '\0'; 으로 고치시면 됩니다.