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 { // 회문 아님
}
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
180920 [질문] 게임패스 PC용 게임 추천 좀 부탁드립니다 [8] 공놀이가뭐라고2798 25/06/19 2798
180919 [질문] 충청, 전라 국내 여행지 추천해주세요 [7] 캡틴리드1626 25/06/19 1626
180918 [질문] 옛날에 봤던 만화 제목을 알고싶습니다. [3] 코우가노모안!2942 25/06/19 2942
180917 [질문] 중고 가전제품 판매 [6] 빠른정형돈1780 25/06/19 1780
180916 [질문] 차량 햇빛가리개 쓸만한가요? [13] 그냥가끔3355 25/06/19 3355
180915 [질문] 여자 조카 첫 취업선물 어떤게 좋을까요? [31] 시은4498 25/06/18 4498
180914 [삭제예정] 컴퓨존에서 맞출수 있는 hdd 6개 이상 들어가는 케이스 [9] nlcml3573795 25/06/18 3795
180913 [질문] 일본 여행을 왔는데 이 상황 어떻게 해야할까요? [16] 헤후4645 25/06/18 4645
180912 [질문] 기동전사 건담 지온군 기체명 관련 질문 드립니다 + @ [25] 이화3228 25/06/18 3228
180911 [질문] 전자책용 아이패드 미니 vs 이북(e-book)리더기 [42] 설탕3582 25/06/18 3582
180910 [질문] 차량용 앞유리 햇빛가리개 추천 부탁드립니다! [9] 주니뭐해1491 25/06/18 1491
180909 [질문] 복구이후 yes24 구매하신분 계실까요? [3] 하나둘셋1659 25/06/18 1659
180908 [질문] 공공장소에서 애정행위 하는 커플 만나면 어떻게 대처 하시나요? [54] 봐도봐도모르겠다4521 25/06/17 4521
180907 [질문] 갤럭시로 이미지에 필기 [2] ELESIS2028 25/06/17 2028
180906 [질문] Msi 결승전 시간 질문드립니다. [2] 페로몬아돌2330 25/06/17 2330
180905 [질문] 8말 홋카이도 갑니다. 도와주세요… [30] 회색사과4788 25/06/17 4788
180904 [질문] 테저전 입구막기 어려운 맵 대처법 [2] 샐러드2128 25/06/17 2128
180903 [질문] 알리 미니pc에 포함된 윈도11 [2] 이민들레1344 25/06/17 1344
180902 [질문] 서울 아저씨가 뜻하지 않게 부산 6/27-29 혼자 주말을 보내게 되었습니다. 알차게 보내는 법 알려주세요 [19] 화재안전기준2365 25/06/17 2365
180901 [질문] 과거 영상을 찾습니다... 먹방영상인데... [2] 연필깍이1437 25/06/17 1437
180900 [질문] ChatGPT 프로젝트 로딩 잘 되나요? 탄야1112 25/06/17 1112
180899 [질문] 애니메이션 초능력배틀물/또는 외국 시리즈물 추천 부탁드립니다. [10] 그리움 그 뒤1232 25/06/17 1232
180898 [질문] 광화문 1번출구 근처 레스토랑 질문 [6] 대고1288 25/06/17 1288
목록 이전 다음
댓글

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