사용자가 단어 나 문자를 입력하고 저장 한 다음 사용자가 다시 입력 할 때까지 인쇄하여 프로그램을 종료 할 수있는 프로그램을 얻으려고합니다. 내 코드는 다음과 같습니다
#include <stdio.h>
int main()
{
char input[40];
char check[40];
int i=0;
printf("Hello!\nPlease enter a word or character:\n");
gets(input);
printf("I will now repeat this until you type it back to me.\n");
while (check != input)
{
printf("%s\n", input);
gets(check);
}
printf("Good bye!");
return 0;
}
문제는 사용자의 입력 (확인)이 원본 (입력)과 일치하더라도 입력 문자열을 계속 인쇄한다는 것입니다. 두 가지를 잘못 비교하고 있습니까?
strcmp()
자사의 입력이 동일 반환 제로 이하 같거나보다 평등, 불평등, 이상에 대한 문자열을 비교하는 방법을 설명하고,보다 크거나 같음. 모든 문자열 비교가 동일한 것은 아닙니다. 대소 문자 구분 비교는 다시 다릅니다. 다른 특수 비교 (예를 들어, 사전 순서)에는보다 전문화 된 비교기가 필요하며, 더 복잡한 비교를위한 정규식이 있습니다.
gets()
끝이 없습니다. C11 이후 표준에서 제거되었습니다.-> 읽기 기능을 사용하지 않아야하는 위험한 이유는 무엇입니까?를 참조하십시오.
gets( )
표준에서 제거되었습니다.fgets( )
대신 사용하십시오 .