C++ 如何在C++;
大家好,我的反向复制方法有点问题。该方法需要反向复制char*C++ 如何在C++;,c++,copy,logic,C++,Copy,Logic,大家好,我的反向复制方法有点问题。该方法需要反向复制char* char* reverseCopy(char* destination, const char* source, int num) { char placeHolder; for (int j=0; j<=num; j++) { strcpy(destination,source); } for (int i=0; i<num; num--) {
char* reverseCopy(char* destination, const char* source, int num)
{
char placeHolder;
for (int j=0; j<=num; j++)
{
strcpy(destination,source);
}
for (int i=0; i<num; num--)
{
placeHolder = destination[num];
destination[i]=placeHolder;
}
destination[num]='\0';
return destination;
}
char*reverseCopy(char*destination,const char*source,int num)
{
字符占位符;
对于(int j=0;j您始终可以将它们转换为字符串,并将source.rbegin()用于复制函数。您始终可以将它们转换为字符串,并将source.rbegin()用于复制函数。您始终可以将它们转换为字符串,并将source.rbegin()用于复制函数。您始终可以将它们转换为字符串,并将source.rbegin()用于复制函数。具有复制功能。但有更简单、更快的方法:
例如,为什么需要在循环中将源
复制到目标
如果destination==source
呢
此外,此循环:
for (int i=0; i<num; num--)
{
placeHolder = destination[num];
destination[i]=placeHolder;
}
但有更简单、更快的方法可以做到这一点:
例如,为什么需要在循环中将源
复制到目标
如果destination==source
呢
此外,此循环:
for (int i=0; i<num; num--)
{
placeHolder = destination[num];
destination[i]=placeHolder;
}
但有更简单、更快的方法可以做到这一点:
例如,为什么需要在循环中将源
复制到目标
如果destination==source
呢
此外,此循环:
for (int i=0; i<num; num--)
{
placeHolder = destination[num];
destination[i]=placeHolder;
}
但有更简单、更快的方法可以做到这一点:
例如,为什么需要在循环中将源
复制到目标
如果destination==source
呢
此外,此循环:
for (int i=0; i<num; num--)
{
placeHolder = destination[num];
destination[i]=placeHolder;
}
我可以将该函数编写如下:
char* reverseCopy(char* destination, const char* source, int num) {
char* d = destination;
while (num) {
*d++ = source[--num];
}
*d = '\0';
return destination;
}
我可以将该函数编写如下:
char* reverseCopy(char* destination, const char* source, int num) {
char* d = destination;
while (num) {
*d++ = source[--num];
}
*d = '\0';
return destination;
}
我可以将该函数编写如下:
char* reverseCopy(char* destination, const char* source, int num) {
char* d = destination;
while (num) {
*d++ = source[--num];
}
*d = '\0';
return destination;
}
我可以将该函数编写如下:
char* reverseCopy(char* destination, const char* source, int num) {
char* d = destination;
while (num) {
*d++ = source[--num];
}
*d = '\0';
return destination;
}
使用一种新的方法会是欺骗吗
使用一种新的方法会是欺骗吗
使用一种新的方法会是欺骗吗
使用一种新的方法会是欺骗吗
将字符串逐字符推入STL堆栈,然后将堆栈顶部的字符弹出到新字符串中
它们将被反转。将字符串逐字符推入STL堆栈,然后将字符从堆栈顶部弹出,放入新字符串
它们将被反转。将字符串逐字符推入STL堆栈,然后将字符从堆栈顶部弹出,放入新字符串
它们将被反转。将字符串逐字符推入STL堆栈,然后将字符从堆栈顶部弹出,放入新字符串
它们将被反转。您期望的是什么输出,您得到的是什么输出?老实说,仅仅反转一个字符串就太复杂了。为什么在循环中使用strcpy呢???只需获取指向最后一个字符的指针并向后迭代,复制到输出字符串。注意终止字符。是的,我认为t他不知道循环可以倒转。我假设这是因为调用strcpy是完全不必要的(即使它被错误地使用)。您希望得到什么输出?确切地说,您得到的是什么输出?老实说,这是一个过于复杂的代码,只是为了反转字符串。为什么strcpy
在一个循环中???只需获取指向最后一个字符的指针并向后迭代,复制到输出字符串。请注意终止字符。是的,我认为OP没有意识到loops可以倒转。我假设这是因为调用strcpy是完全不必要的(即使它被错误地使用)。您希望得到什么输出?确切地说,您得到的是什么输出?老实说,这是一个过于复杂的代码,只是为了反转字符串。为什么strcpy
在一个循环中???只需获取指向最后一个字符的指针并向后迭代,复制到输出字符串。请注意终止字符。是的,我认为OP没有意识到loops可以倒转。我假设这是因为调用strcpy是完全不必要的(即使它被错误地使用)。您希望得到什么输出?确切地说,您得到的是什么输出?老实说,这是一个过于复杂的代码,只是为了反转字符串。为什么strcpy
在一个循环中???只需获取指向最后一个字符的指针并向后迭代,复制到输出字符串。请注意终止字符。是的,我认为OP没有意识到loops可以倒转。我假设这是因为调用strcpy是完全不必要的(即使它被错误地使用)。您可能想详细说明,从技术上讲,它们是字符串,但不是std::string
您可能想详细说明,从技术上讲,它们是字符串,但不是std::string
您可能想详细说明,从技术上讲,它们是字符串,但不是std::string
如果destination==source
??@AlexLop.这不是优化问题。他只想知道如何反转字符串。那么行为将是未定义的,就像在重叠区域上操作memcpy之类的库函数一样。这是OP问题范围之外的问题。如果需要,那么source应该首先复制到一个临时缓冲区,然后从那里执行向后复制。@任务检查destination==source
不是关于优化。而是关于输入检查。@AlexLop。有点糟糕如果destination==source
?@AlexLop。这不是关于优化。他只想知道如何反转一个ring。然后,该行为将是未定义的,就像在重叠区域上操作memcpy之类的库函数一样。这是OP问题范围之外的问题。如果需要,则应首先将源复制到临时缓冲区,然后从那里执行反向复制。@Quest检查destination==source
与优化无关。它与输入检查有关。@AlexLop。如果destination==source
,这有点像是两回事?@AlexLop。这与优化无关。他只是