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 { // 회문 아님
}
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
175781 [질문] 미국 역사상 최악의 사회 혼란+암흑기는 뭐라고 생각하시나요? [11] 보리야밥먹자1250 24/04/15 1250
175780 [질문] 애기 이름을 영어식으로 짓고 싶습니다. [49] 카즈하2964 24/04/15 2964
175779 [질문] 핸드폰 발열이 많이 있을때 냉동실에 넣어도 괜찮나요 [9] 뵈미우스1485 24/04/15 1485
175778 [질문] 첫 중고차 구매 자동차보험 관련 질문드립니다. [3] 7101201 24/04/15 1201
175777 [질문] 편찮으신 장모님 모시고 갈 식당 추천 부탁드려요(서울 근처) [14] 수지짜응1317 24/04/15 1317
175776 [질문] 자동차보험 제 명의 내에서 차량 변경 질문입니다 [2] 매즈미켈슨1625 24/04/15 1625
175775 [질문] 라이트파이낸스 사기인가요? [21] 교자만두1720 24/04/15 1720
175774 [질문] 이 나무 이름이 뭘까요? [5] workbee1104 24/04/15 1104
175773 [질문] 5세 여아와 오사카여행 [15] 링크1788 24/04/15 1788
175772 [질문] JBL 1300이라는 사운드바 연결 질문입니다. [1] 아타락시아11092 24/04/15 1092
175771 [삭제예정] 동네 간짜장 곱배기 가격 어찌들되시나요? 여러분들이라면? [22] Euphoria2248 24/04/14 2248
175770 [질문] 맥 OS용 이미지 뷰어 프로그램 문의 [9] 한국화약주식회사1093 24/04/14 1093
175769 [질문] 아이폰에 있는 음악파일 접근 가능한가요 [3] egernya1548 24/04/14 1548
175768 [질문] [디아3] 혹시 시즌 하시는분 계신가요 [2] Scour1901 24/04/14 1901
175767 [질문] 편한 운동화나 신발 추천좀 부탁드립니다 [17] 같이걸을까1747 24/04/14 1747
175766 [질문] 5월초 일본 휴양 여행 어디가 좋을까요? [17] 회전목마1914 24/04/14 1914
175764 [질문] 감기가 올 것 같은 느낌입니다. 어떻게 해야 할까요 ㅜㅜ [12] 엔지니어1341 24/04/14 1341
175763 [질문] 초등학생과 같이 볼만한 OTT 영화 추천부탁드립니다. [10] 유니꽃1686 24/04/14 1686
175762 [질문] 내일 LCK 결승전 시작시간 [6] 마인부우2461 24/04/14 2461
175761 [질문] 롤챔스 결승 뷰잉 파티요.. [6] Aquaris1568 24/04/13 1568
175760 [질문] 스포티비나우 사이트 접속 에러 [1] 돔페리뇽1391 24/04/13 1391
175759 [질문] pc 블루투스 이건 어디가 문제일까요? [5] 던멜1547 24/04/13 1547
175758 [질문] 컴퓨터 책상 깊이... 60cm면 충분할까요? [18] 다시마두장1683 24/04/13 1683
목록 이전 다음
댓글

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