C++에서 아님 C에서 정수값 9999를 입력받았을때 입력받은 정수가 4자리이잖아요.. 이런걸 알아내는 함수가 있나요? 있다면 함수 이름 좀 가르켜주세요..
strlen함수를 써서 알아낼 수도 있지만 이건 좀 무식한거 같아서.. ㅡ.ㅡ 아시는 분 좀 가르켜주시길..
그럼..
0 < x/10 <1 ==> 1자리 ------(1) 0 < x/100 < 1 ==> 2자리 ------(2) . . .
나눈 값이 0과 1사이가 될때까지 차례로 하면 되지 않을까여?10진수라면... strlen을 쓰는게 무식한건가 -_-a
앞마당 먹고 시작한 저그의 8할은 뮤탈 테크를 먼저 탄다. 하지만 나머지 2할때문에 항상 스켄이 모자란다. - _-;
log 값을 취하면 되지 않나요?
---http://coolengineer.com
삭제됨
제가 아는 한도에서는 없는것 같구요,, /10을 이용해서 하면 되겠죠^^;;
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> int sizeofint(int data) { int pos = 1, i; if (data < 0) data *= (-1); for (i = 0; ; i++, pos++) { if ((data /= 10) <= 0) break; } return(pos); } int main(int argc, char **argv) { printf("%d, %d\n", 399, sizeofint(399)); printf("%d, %d\n", 12345, sizeofint(12345)); printf("%d, %d\n", 4, sizeofint(4)); printf("%d, %d\n", -4, sizeofint(-4)); exit(0); } [19:33:09 temp] o( ")o $ a 399, 3 12345, 5 4, 1 -4, 1 [19:33:58 temp] (o^^o) $
>/dev/null 2>&1
어떻게 처리해야 할지 상당히 고민했었는데. 나름데로 해결책을 찾았네요..
답변 감사드립니다..
int int_width(int num) { int ret; if (num < 0) num = -num; for (ret = 0; num > 0; num /= 10, ret ++) /* NULL */; return ret; }
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
0 < x/10 <1 ==> 1자리 ------(1)
0 < x/10 <1 ==> 1자리 ------(1)
0 < x/100 < 1 ==> 2자리 ------(2)
.
.
.
나눈 값이 0과 1사이가 될때까지 차례로 하면 되지 않을까여?10진수라면...
strlen을 쓰는게 무식한건가 -_-a
앞마당 먹고 시작한 저그의 8할은 뮤탈 테크를 먼저 탄다. 하지만 나머지 2할때문에 항상 스켄이 모자란다. - _-;
log 값을 취하면 되지 않나요?
log 값을 취하면 되지 않나요?
---
http://coolengineer.com
삭제
삭제됨
제가 아는 한도에서는 없는것 같구요,,/10을 이용해서 하면 되겠죠^
제가 아는 한도에서는 없는것 같구요,,
/10을 이용해서 하면 되겠죠^^;;
>/dev/null 2>&1
답변감사드립니다..
어떻게 처리해야 할지 상당히 고민했었는데.
나름데로 해결책을 찾았네요..
답변 감사드립니다..
그럼..
[code:1]int int_width(int num)
댓글 달기