- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是学校的任务,我应该编写一个递归函数,将给定的 int 转换为字符串,我知道我很接近,但我无法指出我的代码中缺少的东西,欢迎提示.
void intToStr(unsigned int num, char s[])
{
if (num < 10)
{
s[0] = '0' + num;
}
else
{
intToStr(num/10, s);
s[strlen(s)] = '0' + num%10;
}
}
编辑:我的问题是该函数仅适用于预先初始化的数组,但如果我让该函数对未初始化的函数起作用,它将不起作用。
最佳答案
除非你的数组是零初始化的,否则你会忘记在修改它时附加一个空终止符。
只需在最后一个字符之后添加即可:
void intToStr(unsigned int num, char s[])
{
if (num < 10)
{
s[0] = '0' + num;
s[1] = 0;
}
else
{
intToStr(num/10, s);
s[strlen(s)+1] = 0; //you have to do this operation here, before you overwrite the null terminator
s[strlen(s)] = '0' + num%10;
}
}
此外,您的函数假设 s 有足够的空间来容纳所有数字,因此您最好确保它确实如此(我认为 INT_MAX 是 10 位数字,所以您至少需要 11 个字符)。
关于c++ - 递归地 intToStr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13998741/
这是学校的任务,我应该编写一个递归函数,将给定的 int 转换为字符串,我知道我很接近,但我无法指出我的代码中缺少的东西,欢迎提示. void intToStr(unsigned int num, c
尝试在 showmessage 弹出窗口中打印索引会出现编译时错误。 [dcc32 Error] Unit.pas(57): E2003 Undeclared identifier: 'IntToSt
我想知道是否有比 System.IntToStr/System.StrToInt 更快的替代方案。有一个快速版本,但只有 UTF8。这是来自 SynCommons.pas 的 Int32ToUTF8,
这个问题已经有答案了: String valueOf vs concatenation with empty string (10 个回答) 已关闭 7 年前。 有几个人告诉我这样的事情非常懒: in
public static final int MAX_DIGITS = 10; String intToStr( int num ){ int i = 0; boolean isNe
我可以在 C++Builder 6 中成功编译以下代码片段,但我无法在 RAD Studio Seattle 中编译它: unsigned long x = 50; String s = In
我是一名优秀的程序员,十分优秀!