2013-03-02 5 views
-5

'n'숫자가 있습니다. 같은 첫 번째 n - 1 자릿수를 인쇄해야합니다. 내가 아는 한 기본적으로 10으로 나누기입니다. 그러나 이것은 산술 연산자를 사용하지 않고 수행해야합니다. ctype에서 전환 수를 사용했지만 숫자의 정확한 길이 (예 : no. 숫자가 알려지지 않았기 때문에 동일한 숫자를 사용할 수 없습니다.n - 1 자리 숫자

convert int to string, say 12345 to string 

set the last position of it to '\0', in my case last position is not known 

//i.e. 1, 2, 3, 4, '\0', assuming string size is 5 

convert it back to int.// 1234 

어떤 비틀기, 또는이 사용할 수 완전히 다른 무언가가 있나요?

+0

이 C 또는 C++입니까? –

+0

그건 그렇고 int를 문자열로 변환하는 것은 arithmetics를 포함 할 것입니다. 그렇기 때문에 표준 함수를 사용하여 수행 할 수 있지만 산술을 사용하게 될 것입니다. –

+0

"숫자"를 얻는 방법, 사용자가 입력하는 방법 또는 프로그램에 입력 한 정수입니까? –

답변

2

int를 문자열로 변환하려면 sprintf()을 사용하십시오. sprintf으로 전달하려면 char buffer[SOMESIZE];이 필요합니다. 이제 당신은 조작 할 수있는 문자열이 있습니다. strlen()은 그 길이를 알려줍니다 [1]. 나머지는 당신이 개설 한 것을 따라야합니다.

정확하게 비트를 결합하는 방법을 알아 보도록하겠습니다.

[1] 실제로 문자열에서 생성 된 문자 수를 반환하므로 sprintf의 길이를 길이로 사용할 수 있습니다.