PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2013/12/25 23:36:36
Name 히페리온
Subject [질문] c언어 관련 질문드리는데요.
        char str1[1024];
        char str2[1024];
        int i = 0, len;
        cout << "문장을 입력하세요. ";
        cin >> str1; //aba

        cout << "문장의 길이를 입력하세요. ";
        cin >> len; //3

        len = strlen(str1);
        cout << "문자열 길이: "<< len << endl;

        while(str1[i] != NULL)
        {
                str2[i] = str1[len-1-i];
                i++;
        }
        str2[i] = NULL;
        cout << str1 << endl;
        cout << str2 << endl;

        if(str1 == str2)
        {
                cout << "회문 입니다." << endl;
        }
        else
        {
                cout << "회문이 아닙니다." << endl;
        }
-----------------------------------
입력(str1)을 aba 했을 때 출력(str2)도 aba가 나오면 if 첫 번째꺼를 실행하고 아니면 else로 실행하는 건데요. 이상하게 else로만 가네요. 처음에 aba 입력하면 str1에 aba, str2에 aba 들어가서 str1 == str2기 때문에 if 첫 번째꺼가 실행되어야 할텐데 안되네요. 뭐가 잘못 됐을까요?

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
RedDragon
13/12/25 23:49
수정 아이콘
if(str1 == str2) 를 if( (strcmp(str1,str2)) == 0 ) 으로 바꿔서 해보세요.
문자열 비교는 단순 == 가 아닌, strcmp를 쓰셔야 할 거에요~
히페리온
13/12/26 00:22
수정 아이콘
고맙습니다. strcmp는 안 쓸려고 했는데 썼네요.~
Lucky-Strike
13/12/26 00:02
수정 아이콘
if문 들어가기전에 i값을 확인해보시고 str1과 str2의
배열의 각각 인덱스에 동일하게 내용이 들어가있는지 확인해보세요.
그리고 len의 값이 제대로 들어오는지도 확인해보세요.
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 { // 회문 아님
}
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
175672 [질문] 한국 미래에 대해 밝은 전망을 담은 책/논문이 있을까요? [8] 아르네트1421 24/04/08 1421
175671 [질문] 건대 학교식당 외부인 이용 가능 할까요? [3] 라캉~1770 24/04/07 1770
175670 [질문] 네이버 부동산 허위매물이 많나요?? [12] JP-pride2062 24/04/07 2062
175669 [삭제예정] (컴맹주의) 모니터 연결이 안 되는 이유? [7] 삭제됨1184 24/04/07 1184
175668 [질문] 아이폰Se3 애플케어플러스 가입해야 하나요? [6] 히로&히까리1579 24/04/07 1579
175667 [질문] 영어회화를 잘하고 싶습니다 [10] 울트라머린1473 24/04/07 1473
175666 [질문] 에버랜드 개장전에 시간때우기 [7] 삼성시스템에어컨1525 24/04/07 1525
175665 [질문] 국민임대 아파트 당첨 후 계약전 청약통장 해지 [3] 오마하이1411 24/04/07 1411
175664 [질문] 디아블로 새 시즌 시작하기 전 뭘 해두면 될까요? [8] 모나크모나크798 24/04/07 798
175663 [질문] 혹시 세종시내에 물품보관함 있는곳 있을까요? [7] 태연­857 24/04/07 857
175662 [질문] 조금 일하고 적게 돈 버는 일 없을까요? [22] VictoryFood2539 24/04/07 2539
175661 [질문] 무릎 아킬레스건 이슈가 있는데 기초체력을 늘리려면... [6] 짐바르도1068 24/04/07 1068
175660 [질문] 스타2보다 스타1이 인기 많나요? [13] 소오강호2309 24/04/07 2309
175659 [질문] 걸을때 발에 통증이 느껴집니다 [24] Fullsun2579 24/04/06 2579
175658 [질문] 넷플릭스에 예전 명작 영화 많지 않았나요??! [5] 잉차잉차2386 24/04/06 2386
175657 [질문] 최현우 마술사가 했던 마술 찾습니다 샤르미에티미1525 24/04/06 1525
175656 [질문] 해외여행후 갤럭시s22 서비스불가(데이터X) 지속현상.. 해결책 아시는분있으실까요 [1] 무언가1583 24/04/06 1583
175655 [질문] 아파트 건설 소음 관련 소송을 비대위에서 준비하는데 [3] 안녕!곤1846 24/04/06 1846
175654 [질문] 여행 질문 [2] 앵글로색슨족2444 24/04/06 2444
175653 [질문] 강남역 이자카야 or 호프 추천부탁드립니다. [1] Mamba1699 24/04/06 1699
175652 [질문] 노트북 구매 질문 [2] 타츠야2480 24/04/05 2480
175651 [질문] 알파고 김성현 선수 방송에 관련해서.. [19] EY4658 24/04/05 4658
175650 [질문] 재밌는 부동산 커뮤니티 있을까요? [5] 기다리다2823 24/04/05 2823
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로