void concat(char *str, char *ch, int num)
{
*str= *ch; ++str;
while (num>0) {
*str = '0' + num % 10;
num /= 10;
++str;
}
}
concat(runner, 'a', 10);
concat(runner, 'b', 20);
我只想将一个字符如'a'连接到10,预期结果将是a10 第一行工作正常。但我只是想在第一行(concat a10)之后,运行者应该指向字符串的结尾,所以当我运行第二行时,它应该是 a10b20,但实际结果是 b20 覆盖了 a10。 我认为这应该是指针问题,你能帮帮我吗?
最佳答案
我正在完全改变我的答案。将其放在函数的开头:
void concat(char * str, const char * ch, int num) {
while (*str) {
++str;
}
然后保持其余不变。这确实是 concat 应该看起来的样子。在第一次调用之前确保 runner[0] == 0 !并将以下代码添加到函数的末尾,最后一个大括号之前:
*str = 0;
}
关于c++ - 指针无法在 C++ 函数中维护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13730868/