:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
13/12/25 23:49
if(str1 == str2) 를 if( (strcmp(str1,str2)) == 0 ) 으로 바꿔서 해보세요.
문자열 비교는 단순 == 가 아닌, strcmp를 쓰셔야 할 거에요~
13/12/26 00:02
if문 들어가기전에 i값을 확인해보시고 str1과 str2의
배열의 각각 인덱스에 동일하게 내용이 들어가있는지 확인해보세요. 그리고 len의 값이 제대로 들어오는지도 확인해보세요.
13/12/26 02:02
13/12/26 03:16
str1 == str2 는 순전히 각각의 주소값 비교입니다.
문자열을 서로 맞춰보는게 아니라요. 아무리 똑같이 문자를 입력해도 주소값이 다르니 계속 else로 가게되겠죠.
13/12/26 09:12
strcmp 쓸 필요 없죠. 처음에 str2로 넣는 과정을 생략하고 바로 비교를 하면 되죠.
보통 이러한 경우는 1/2만 돌면서 비교하면 되기 때문에 while 문보다는 for 문을 많이 씁니다. 처음에 길이도 입력 받았겠다 딱 좋은 상황이네요.(근데 문장 길이 입력 받아놓고 strlen을 또 하네요..) (len이 홀수가 되어도 가운데의 문자는 비교안해도 되기 때문에 로직상 문제 없습니다.) bool isCircular = true; for (i = 0 ; i < len / 2 ; i++) { if (str1[i] != str1[len - i - 1]) { isCircular = false; } } if (isCircular) { //회문 } else { // 회문 아님 }
|