PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2010/07/05 09:01:29
Name Ibiza
Subject 씨언어 질문좀 드리겠습니다.
안녕하세요
뒤늦게 씨언어를 공부하고 있는 늦깍이학생입니다.
문자열과 단어 하나를 입력하고 그 단어가 문자열 중에서 몇개나 나오는지 계산하는 프로그램을 짜고 있습니다.
아래는 제가 짠 코드입니다.

#include <stdio.h>
#include <string.h>

int main(void){

        char str[256];
        char *ptr;
        int count=0;
        char letter;
        
        printf("Input any sentence without blank: ");
        scanf("%s", str);
        
        printf("Input any character: ");
        scanf("%c", &letter);
        
        for (ptr=str;;){
        
                ptr = strchr(ptr,letter);
                if (ptr == NULL)
                        break;
                count++;
                ptr++;
        
        }//for
        
        printf("There are %d numbers of the character '%c' in the string", count,letter);

}//main

문제는 컴파일을 하면
Input an sentence without blank: ~~~까지는 잘나오는데
그다음엔 바로
Input any character: There are 0 numbers of the character가 출력돼어 버립니다.
섬머세션으로 짧고 굵게 C언어를 공부하다보니
기초적인 면이 많이 부족하네요.
피지알에만 신세지는것 같아 마음이 무겁습니다.
어느부분이 잘못됐는지 확인해주시면 정말 감사할게요~
한국은 아침이겠네요. 좋은하루돼세요~

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
꿀호떡a
10/07/05 09:54
수정 아이콘
scanf("%c", &letter); 이게 무시된다는 말씀이시죠? :)
왜냐하면, 그 전 줄인 scanf("%s", str);에서 문자열만 가져가고 끝에 입력하셨을 엔터(\n)을 가져가지 않기 때문에, 그 다음 입력에서 letter에 버퍼에 남아있던 \n가 들어가서 그렇습니다.
해결책은,

char letter_buffer[5];
scanf("%s", letter_buffer)
letter = letter_buffer[0];

과 같이 %c 대신 string으로 입력받아 0번지를 취하시면 됩니다 :)
10/07/05 10:21
수정 아이콘
꿀호떡 님의 말씀이 맞구요.
다양한 해결책이 있겠지만 가장 간단한 방법은
scanf("%c", &letter);
윗줄에
getchar();
한줄 넣어주세요. :)
이게 어떤 의미 인지는 스스로 알아보시는 것도 좋을 것 같네요. 절대로 설명하기 귀찮아서가 아닙니다 크크크;;
10/07/05 10:58
수정 아이콘
꿀호떡a님// 빅뱅님// 감사합니다~ 속이 다 후련하네요 하하 좋은하루 돼시길 바랍니다~!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
85514 짝짝이 어깨 때문에 고민입니다. [3] 레드나이3651 10/07/05 3651
85513 훈민메모패드, 한컴쪽지...다른 회사 사람들하고 가능한가요? [1] 고등어3마리2421 10/07/05 2421
85512 씨언어 질문좀 드리겠습니다. [3] Ibiza1358 10/07/05 1358
85511 소개팅에 나가서 할 노래개그와 마음가짐에 대해 질문입니다... [8] 쓰고이2489 10/07/05 2489
85510 이미지파일 코드 질문 [1] MinWoo1537 10/07/05 1537
85509 슈퍼주니어 강인이 입대를 한다고 합니다. [11] DeadOrUndead2585 10/07/05 2585
85508 '지금 만나러 갑니다' '국화꽃향기' 같은 영화 추천 부탁드립니다! [5] 껀후이2723 10/07/05 2723
85506 대구시 열람실 질문입니다~ [1] 초록추억2011 10/07/05 2011
85505 핸드폰 기계값 할부 질문입니다. [4] 임헐크님1700 10/07/05 1700
85504 오래된 그래픽카드..드라이버 찾기가 힘드네요 [6] goGo!!@heaveN.2250 10/07/05 2250
85503 고용량 동영상만 보면 버벅거립니다 [7] 라캉~2145 10/07/05 2145
85502 이별노래 질문입니다. [16] 스카이_워커2087 10/07/05 2087
85501 엘꼴라시코가 뭔가요?? [15] SwEeTy5378 10/07/05 5378
85500 스타2 돌아가는 컴퓨터 [1] 우리아버1678 10/07/05 1678
85498 비니 괜찮은 스타일 파는곳 아시나요? Kaga1553 10/07/04 1553
85497 허리고쳐주는 병원이 없네요;; [7] 루니2113 10/07/04 2113
85496 자동 로그인 다들 잘 되시나요? [7] Utopia2137 10/07/04 2137
85495 핸드폰 관련해서 질문올립니다..(SKT 사용자인데, 계약시 문제입니다.) [5] 공업저글링1338 10/07/04 1338
85494 IE8 사용중인데요.. 궁금한점이..^^: [2] 마르키아르1578 10/07/04 1578
85493 여기서 검색어 입력하니깐 오류나는거 같은데 저만 그런가요? [4] Liberal1345 10/07/04 1345
85490 금융 상품중에 ELW가 무엇인가요? [3] 상코마네1610 10/07/04 1610
85489 갤럭시 s관련 질문입니다. [1] 네오1815 10/07/04 1815
85487 windows7 Professoinal 구입에 앞서 질문드립니다. [3] Joon1432 10/07/04 1432
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로