F11로 실행할 때 scanf까지 실행하면
Visual Studio가 아니라 새로 뜬 명령 프롬프트 창에서 입력을 대기하고 있을 겁니다. 이때 입력하면 scanf 이후의 위치로 이동하면서 F11로 단계별로 실행할 수 있습니다.
F11로 처음부터 하나씩 실행하면 번거롭기 때문에 실무에서는 중단점을 더 많이 씁니다. 예제가 간단한 입문서에서는 F11로 전체를 실행하면서 살펴보는 것도 좋습니다.
문제를 너무 어렵게 접근하고 있습니다.
while (text[i] == " ")
{
text[i] = text[i++];
}
일단, 공백 처리가 너무 어렵습니다. 이게 무슨 뜻인지는 모르겠습니다.여기서 변수 i는 전혀 직관적이지 않습니다.
hello라는 문자열이 입력되었다면
begin 변수는 0을 가리키고, end 변수는 4를 가리키면 됩니다.
배열을 0부터 세니까요.
text[begin]에 공백이 있다면? begin을 1 증가시킨다
while(text[begin] == ' ')
begin++;
공백이 있으면 계속 증가시키면 됩니다.
마찬가지로 text[end]에 공백이 있다면 end를 1 감소시킨다.
begin, end의 문자가 공백이 아니면
이 두 문자를 비교해서 일치하면 다음 문자 위치로 이동,
일치하지 않으면 회문이 아니므로 종료
text[i] = text[i++]은
무슨 뜻인지도 알 수 없고, 지금 비교하는 문자열을 직접 조작하기 때문에 위험합니다. 더 엉망이라는 뜻입니다.
입력받은 문자열은 수정하지 않고, begin, end 인덱스만 조절하면서 문자를 비교하고, 공백을 건너 뛰고, 회문을 판별하면 됩니다.
타이핑을 귀찮아하지 말고, 직관적인 변수명을 사용해야 코드를 이해하기 쉽고 문제도 더 빨리 풀 수 있습니다.
마찬가지로 타이핑이 귀찮다고 b, e 같은 암호 같은 변수명을 써도 안 됩니다. 현업에서 그러면 바로 퇴짜입니다. 커밋한 거 롤백 당합니다.