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
수정 아이콘
모두 감사합니다!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
103543 [질문] 디지털카메라 관련 질문입니다. [6] 예술가2554 17/06/01 2554
103542 [질문] [LCHF] 경험자분들께 질문드립니다. [16] 이슬먹고살죠3609 17/06/01 3609
103541 [질문] [LCHF] 똥 질문드립니다 (똥냄새 주의) [7] 전크리넥스만써요3980 17/06/01 3980
103540 [질문] 히어로 영화 중에 딱 한편만 뽑으신다면... [54] 마르키아르4200 17/06/01 4200
103539 [질문] 이런 경우 사기로 고소가 가능한지요? [11] tannenbaum3064 17/06/01 3064
103538 [질문] 여자들은 남자를 볼때 돈이 최우선인건가요? [54] 참교육7675 17/06/01 7675
103537 [질문] 마이크 웅웅거리는 현상 [14] 아이러브스타18838 17/06/01 18838
103536 [질문] 컴퓨터 바꾼 후, 듀얼 모니터 인식이 안됩니다. [2] 김승남8326 17/06/01 8326
103535 [질문] 태양광 발전사업 관련 문의 드립니다. [7] paramita2087 17/06/01 2087
103534 [질문] 핸드폰에 번호 몇개가 갑자기 없어졌습니다 [3] 메모박스2348 17/06/01 2348
103533 [질문] [lol] IG재키러브 언제부터 경기 나올수 있는지 아시나요? [2] 아마존장인3497 17/06/01 3497
103532 [질문] 부모님 사용하실 마우스 있을까요? [3] 다크템플러1839 17/06/01 1839
103531 [질문] 실비보험으로 도수치료는 모든 상품이 가능한가요? [4] LG.33.박용택3939 17/06/01 3939
103530 [질문] 친한 친구들이랑 대판 싸웠는데 제가 소심한건가요? [51] 어른이유5152 17/06/01 5152
103529 [질문] 월요일에 택배받으려면 언제 주문해야하는건가요??? [8] 삭제됨19118 17/06/01 19118
103528 [질문] 아두이노 고수님들 먼지센서 어떻게쓰나요? [2] 빅픽쳐2368 17/06/01 2368
103527 [질문] 고열 후 통증?은 어느 병원을 가야 할까요? [4] 푸른봄2491 17/06/01 2491
103526 [질문] 페이지 추가/순서변경 가능한 노트를 뭐라고 하나요? [4] 1llionaire1975 17/06/01 1975
103525 [질문] 휴대폰 기변시 선택약정 vs 현금완납 [3] 김셈3669 17/06/01 3669
103524 [질문] 직장 상사의 전문성이 너무 떨어져서 대화가 안됩니다. [13] Secundo5013 17/06/01 5013
103523 [질문] [역사] 비스마르크가 이런 말을 했나요? [3] Genius2672 17/06/01 2672
103522 [질문] 스마트한 메모어플, 기기 등 문의 purplesoul1375 17/06/01 1375
103521 [질문] [KBO] 송은범 관련 질문입니다. [12] 톰가죽침대2839 17/06/01 2839
목록 이전 다음
댓글

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