stdin에서 읽은 행이 "login :"으로 시작하는지 확인하려고하지만 strcmp가 작동하지 않는 것 같습니다.두 문자열 비교 strcmp 문제
char s1[20], s2[20];
fgets(s1, 20, stdin);
strncpy(s2,s1,6);
strcmp(s2, "login:");
if(strcmp(s2, "login:") == 0)
printf("s2 = \"login:\"\n");
else
printf("s2 != \"login:\"\n");
"login :"뒤에 오는 것이 마음에 들지 않습니다. 그게 명령이 주어지는 방식입니다. 내가 도대체 뭘 잘못하고있는 겁니까?
'strcmp'는 ** exact ** matches입니다. 나는이 작업을 위해 사용할 수있는 다른 함수가 있는지 보려면 [C 문자열 라이브러리] (http://en.cppreference.com/w/c/string/byte)를 확인하는 것이 좋습니다 ... –
처음 6 개를 복사하고 있습니다. 문자 ("login :"이어야 함)를 "login :"문자열과 비교할 다른 문자열로 변환해야합니다. 그래서 정확하게 일치 할 것입니다. –
아, 그게 중요한 포인트입니다. 나는 그것을 알아 채지 못했다. –