아래는 제가 작성한 코드입니다.
#include <stdio.h>
#include <string.h>
int main()
{
char str[31];
scanf("%[^\n]s", str);
int D = 1;
int length = strlen(str);
int begin = 0;
int end = length - 1;
while(begin < end)
{
if(str[begin] == " ")
{
begin++;
continue;
}
if(str[end] == " ")
{
end--;
continue;
}
if(str[begin] != str[end])
{
D = 0;
break;
}
begin++;
end--;
}
printf("%d\n", D);
return 0;
}
처음과 끝을 비교하다가 공백이 나올시 continue를 진행했는데 뭐가 문제인지 모르겠네요...
공백없이 문자열만 입력하면 올바른 결과값이 나오는데 공백을 넣으면 결과가 이상하게 나오는데 원인을 모르겠어요..
컴파일러 경고를 무시하면 안 됩니다.
타입이 다르다는 뜻이고, 타입이 다르면 제대로 동작하지 않습니다.
문자열은 "로 둘러 싸고, 문자는 '로 둘러 쌉니다. str[0]의 타입은 문자열일까요? 문자일까요? C 언어는 문자열 타입이 없습니다. 문자의 배열로 처리합니다. C++이나 자바 같은 언어는 char, string처럼 문자와 문자열 타입이 따로 있습니다.
Visual Studio 2019에서는 조금 더 깐깐하게 오류를 검토합니다. Visual Studio 2016에서는 프로젝트 설정에서 오류 검토를 깐깐하게 할 수 있습니다.
프로젝트를 우클릭해서 속성으로...
경고 수준을 모든경고사용으로 지정하면 됩니다.