C에서 strcmp() 함수는 두 문자열이 같으면 0을 반환합니다. 나는이 같은 코드를 제공,strcmp()는 부동 문자열 비교시 0을 반환합니다.
char str[10] = "hello";
if(strcmp(str,strrev(str))==0)
{
printf("1");
}
else
printf("0");
이 1의 경우 상동 문자열을 인쇄해야하거나 회문이 아닌 경우는 0을 인쇄해야합니다. 그러나 주어진 문자열 "hello"가 회문이 아닐지라도 1을 출력합니다. 실수는 어디 있습니까?
먼저 사용하려고하는 기능에 대한 설명서를 읽으십시오. strrev는 주어진 문자열을 되돌리고 새 문자열을 생성하지 않는 것 같습니다. 이야기의 끝. – zubergu
"strcmp()는 불균등 한 문자열과 비교할 때 0을 반환합니다."라고 결론을 내리기보다는 40 년 이상 지속 된 strcmp()가 올바로 작동하고 있다고 생각하십시오. "왜 문자열'str'과'strrev (str)'이 같은지 물어보십시오. – chux