자릿수 구하기

 

int GetNumberOfDigits(int n)

{    // n이 음수거나 양수거나 상관없다.

int number = 1;

for(int i = n; i != 0; i/=10)

++number;

return number;

}

또는

int GetNumberOfDigits(int n)

{    // n이 음수거나 양수거나 상관없다.

int number = 1;

for (int i = 10; n / i != 0; i *= 10)

++number;

return number;

}

밑에는 내가 작성해본 것인데 위에 것이 이해하기도 좋고 효율도 좋아보인다.

 

 


 

정수 한 자리씩 판별하기

위의 코드를 응용하면

void foo(int n )

{

for (int i = n; i!= 0; i/= 10)

if(i % 10 != 0)

// do something here ...

else 

// 0일 때

}

 

%10이 1의 자리를 추출한다는 걸 이용해 한자리씩 줄여가면서 체크해볼 수 있다.

 


 

AtoI

 

int AtoI(char* sz)

{

int result = 0;

for(int i = 0; sz[i] != 0; ++i){

result = result * 10 + sz[i] - '0';

return result;

}