ABC 가 주어질때 19~20번째 줄을 거쳐서 rev_str에 저장되는 값은
rev_str[0] = 0
rev_str[1] = 'C'
rev_str[2] = 'B'
rev_str[3] = 'A'
입니다.
이것과 별개로 대문자로 변환은 왜 하는 건지 모르겠습니다.
aA 와 같은 입력은 회문이라고 볼 수 없지 않을까요?
문제에서 대문자를 소문자로 혹은 소문자를 대문자로 변환하여 풀라고 제시했기 때문에 다음과 같이 진행을 했습니다.
(제가 아직 기초적인 수준이라 코드를 다 작성하고자 해서요!)
피드백 주신 내용대로 19~20 줄의 코드를 다음과 같이 수정했습니다.
for (i = 0; i < length; i++,--length) {
rev_str[i] = str[length - 1];
}
rev_str[length] = NULL;
그럼에도 결과 값은 원활하게 출력이 되지를 않네요
예시)
str = "Hello" , strlen(str) = 5 (== NULL값을 제외한 크기) ==> str[0] = H ,[1] = e, [2] = l, [3] = l, [4] = o, [5] = NULL
rev_str[0] = str[4] ==> rev_str[0] = '0'
rev_str[1] = str[3] ==> rev_str[1] = 'l'
rev_str[2] = str[2] ==> rev_str[0] = 'l'
... 등 의 값이 대입 되어 rev_str = "olleh"
이후 rev_s[5] = NULL을 대입하였는데요.
제가 문제를 접근하는 방법 자체가 조금 잘못 된걸까요?
댓글을 작성하려면 로그인해야 합니다.
kwak716 2년 전
문자열 입력 : Able was saw elbA
입력한 문자열을 반대로 읽어도 같으면 회문인데요.
우선, 회문 여부만 판단하는 문제여서 입력한 문자열을 모두 대문자로 변환한 후에
입력한 문자열의 역배열을 만들고 이 두가지를 비교하는 strcmp() 함수를 사용했습니다.
해당 소스 파일에서 제가 틀린 부분은 어디일까요..?
제가 작성한 방법 말고 더 심플하고 직관적인 코드가 있으시고 알려주신다면 정말 감사드리겠습니다 ..!
독학을 하다보니 질문할 곳이 여기 사이트 외에는 없네용 ㅠㅠ
혹시 백준 사이트 외에도 기본적인 질문과 이에 대한 피드백이 조금은 더 빠른 사이트가 있을까요..??