PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2017/06/01 12:06:28
Name 세잎클로버
Subject [질문] 프로그래밍 질문입니다.
int main()
{
        char str[7], b = 0, c = 0;

        puts("input:");
        fgets(str, sizeof(str), stdin); // 123 입력



        
        
        c = (str[0] + str[1] + str[2]);

        printf("%d", (str[0] + str[1] + str[2]));//150
        printf("%d", c);//-106

}
이거

결과가
150
-106

나오는데 이유가 뭔가요ㅠㅠ

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
다이어트
17/06/01 12:09
수정 아이콘
코드가 어떤 결과를 원하시는지 모르겠는데 문자열도 보면 사실상 숫자로 저장됩니다 (65 = A, 66 = B) 이런씩으로요
그걸 "%d"로 출력하면 숫자가 나오고 "%s"또는 "%c"로 하면 그 숫자가 뜻하는 문자가 나오죠. char 형이니까 "%c"로 출력해보세요.
17/06/01 12:12
수정 아이콘
150 = 49+50+51 (아스키코드값)

-106 = 128-150 (overflow) cf) char는 1byte 128을 넘어가는 순간 overflow발생
세잎클로버
17/06/01 13:25
수정 아이콘
감사합니다 ..char가 128까지밖에 안된다는것을 잠깐 잊고있엇어요..
세잎클로버
17/06/01 12:13
수정 아이콘
문자속에 숫자만 합해서 계산하는 프로그램을 작성할려고 하는데
가령 말씀하신대로 1부터 9까지인 48~57사이값만 if값으로 따로 계산해서 c에 합산할 생각이엇는데 그게 안되더라구요..;
그래서 하나씩 파고들어보려고 저렇게 실행해봤는데

합산하는 과정에서 c가 저렇게 나와버리니까 방법이 안보여서 질문드렸습니다 ㅜ
어름사니
17/06/01 12:14
수정 아이콘
char 선언할 때 왜 b=0처럼 하셨나요? 타입 캐스팅 할 필요도 없는데
어름사니
17/06/01 12:16
수정 아이콘
말씀하신 동작을 구현하려면 문자열 아스키 값 읽어서 atoi로 캐스팅하는 작업이 필요해 보입니다.
세잎클로버
17/06/01 12:17
수정 아이콘
포문으로
for(b=0;str[b]!='n';b++){
if(str[b]<58&&str[b]>47)
{c+=str[b];
}
} 돌릴려구요..ㅠ
AirQuick
17/06/01 12:23
수정 아이콘
http://imgur.com/VAoHADD
문자열 내부의 숫자를 다 더하는거라면 이렇게 하면 됩니다
써니는순규순규해
17/06/01 12:30
수정 아이콘
댓글 달고 헉, 더 좋은 방법이 있나?
했는데 같은 방법이네요 흐흐
써니는순규순규해
17/06/01 12:29
수정 아이콘
http://en.cppreference.com/w/cpp/language/ascii
char 의 아스키값 표입니다.
단순하게 처리하려면
c = (str[0]-'0' + str[1]-'0' + str[2]-'0') + '0';
해줘도 됩니다.
출력할때
printf("%d", c)
이렇게 하면 c 의 숫자값을 출력하는거라서 원하는대로 안나오겠지만요.

char, int 구분해서 쓰시고요.
문자->숫자, 숫자->문자 변환 관련 검색 해보세요.
츨력할때도 숫자형, 문자형, 문자열형 등 다양한 형식이 있습니다.
세잎클로버
17/06/01 13:26
수정 아이콘
모두 감사합니다!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
103521 [질문] [KBO] 송은범 관련 질문입니다. [12] 톰가죽침대2781 17/06/01 2781
103520 [질문] 고척돔 주변에 괜찮은 숙소 있을까요? [9] 산호4454 17/06/01 4454
103519 [질문] 스마트폰 게임패드 추천 및 게임 추천 [6] 피즈6521 17/06/01 6521
103518 [질문] 프로그래밍 질문입니다. [13] 세잎클로버2091 17/06/01 2091
103517 [질문] 슬랙스 어디서 사면 좋을까요 [8] 럭키루이3379 17/06/01 3379
103516 [질문] 단어가 생각이 안납니다 [3] 허느2100 17/06/01 2100
103515 [질문] [lol] 듀오구합니다 [10] HappyBath2579 17/06/01 2579
103514 [질문] 서울 서남부 (사당~신도림) 곱창집 추천 부탁드립니다~ [12] 먼산바라기2871 17/06/01 2871
103513 [질문] [스타1]자작맵인데 이미지상으로 맵 어때 보이나요? [5] 핑키밍키2488 17/06/01 2488
103512 [질문] 색소침착 레이저 시술 받아보신 분 있으신가요? [1] aSlLeR1940 17/06/01 1940
103511 [질문] 의자 추천 부탁드립니다! [7] Grundia4878 17/06/01 4878
103510 [질문] 스페인 (바르셀로나) 여행일정 질문입니다 [13] 길태훈3142 17/06/01 3142
103509 [질문] 이거 다른사람이 제 아이디 몰래 접속한건가요? [4] 주본좌4712 17/06/01 4712
103508 [질문] 이런 상황이면 어떻게 하실 건가요? [12] 삭제됨3171 17/06/01 3171
103507 [질문] 전세 재계약 방법 여쭙습니다 [2] RaymondCattell2808 17/06/01 2808
103506 [질문] 뉴스보다가 종교인 과세 얘기가 나와서 궁금해졌습니다. [4] 스핔스핔2112 17/06/01 2112
103505 [질문] [결정장애] PS4 프로 반품할까요? [20] 곡사포5247 17/06/01 5247
103504 [질문] to부정사의 목적어에 관한 질문입니다 [5] 영웅의신화2657 17/06/01 2657
103502 [질문] 세무사 사무실에 종합소득세를 맡겼는데요.. [4] 삭제됨2606 17/05/31 2606
103501 [질문] 서울 신길동 술마시기 좋은 맛집 추천 부탁드립니다. [2] 삭제됨1968 17/05/31 1968
103500 [질문] 눈썹 바로 윗쪽이 찢어졌어요. [6] 회전회오리쓔아앗2379 17/05/31 2379
103499 [질문] 간장게장 택배되는 맛있는 곳 아시나요? [8] 개백정3522 17/05/31 3522
103498 [질문] 대전 중구민방위교육장 주차 질문드립니다 [6] 소시[탱구]3509 17/05/31 3509
목록 이전 다음
댓글

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