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 { // 회문 아님
}
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
175796 [질문] 남자옷 사기 적당한 인터넷쇼핑몰 어떤게 있을까요..? [16] Restar1809 24/04/16 1809
175795 [질문] 인생 최초로 신차가 출고 됩니다. 미리 알아둬야 할 정보가 있을까요?? [15] 원스2605 24/04/16 2605
175794 [질문] 남자 크로스백 추천해주실 수 있을까요? [1] 살다보니별일이1498 24/04/15 1498
175793 [질문] 카카오 워크 익명 설문 문의 [2] 수타군1456 24/04/15 1456
175792 [질문] 초등 2학년 아이에게 적합한 폰 추천 부탁드립니다. [8] 쌍둥이아빠1571 24/04/15 1571
175791 [질문] 무선 마우스+스마트tv+pc 연결 관련 질문입니다 [1] 던멜1212 24/04/15 1212
175790 [질문] 갤럭시 S24 울트라 카메라 질문입니다 [3] Arya Stark871 24/04/15 871
175789 [질문] 조깅용 팬츠 추천 부탁 드리겠습니다. [8] 전반전0대0992 24/04/15 992
175788 [질문] 아주 간단한 수학 3D 그래프 프로그램 있을까요? [4] 햄찌쫓는겐지791 24/04/15 791
175787 [질문] 가압류, 근저당 많은 아파트 매매시 주의사항 여쭤봅니다. [5] 기다리다1256 24/04/15 1256
175786 [질문] 초등 여아 접이식 자전거 어떤가요? [3] 눈팅만일년779 24/04/15 779
175785 [질문] 지금 펨코와 일베랑 상관 없나요? [52] pecotek2972 24/04/15 2972
175784 [질문] 갤럭시 S24 + , S24 U 고민이네요. [12] SlamMarine1118 24/04/15 1118
175783 [질문] 셀프 상속진행해보신분 계실까요? [4] SG워너비945 24/04/15 945
175782 [질문] 차량 교체주기가 어떻게되세요? [39] 날아가고 싶어.1950 24/04/15 1950
175781 [질문] 미국 역사상 최악의 사회 혼란+암흑기는 뭐라고 생각하시나요? [11] 보리야밥먹자1266 24/04/15 1266
175780 [질문] 애기 이름을 영어식으로 짓고 싶습니다. [49] 카즈하2981 24/04/15 2981
175779 [질문] 핸드폰 발열이 많이 있을때 냉동실에 넣어도 괜찮나요 [9] 뵈미우스1505 24/04/15 1505
175778 [질문] 첫 중고차 구매 자동차보험 관련 질문드립니다. [3] 7101224 24/04/15 1224
175777 [질문] 편찮으신 장모님 모시고 갈 식당 추천 부탁드려요(서울 근처) [14] 수지짜응1331 24/04/15 1331
175776 [질문] 자동차보험 제 명의 내에서 차량 변경 질문입니다 [2] 매즈미켈슨1707 24/04/15 1707
175775 [질문] 라이트파이낸스 사기인가요? [21] 교자만두1740 24/04/15 1740
175774 [질문] 이 나무 이름이 뭘까요? [5] workbee1122 24/04/15 1122
목록 이전 다음
댓글

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