我有一个' n'数字。我需要打印相同的前n - 1位数。据我所知,它基本上是除以10.但这是在不使用任何算术运算符的情况下完成的。我尝试使用 ctype 中的一些转换,但由于数字的确切长度,即没有。数字未知,我无法使用相同的。
即
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 :(得分:2)
使用sprintf()
将int转换为字符串。您需要char buffer[SOMESIZE];
才能传入sprintf
。现在你有一个字符串,你可以操纵。 strlen()
会给你它的长度[1]。其余的应遵循您概述的内容。
我会让你弄清楚如何把这些位放在一起。
[1]实际上,您可以使用sprintf
的返回值作为长度,因为它返回字符串中生成的字符数。