【发布时间】:2021-01-21 13:36:26
【问题描述】:
这是我尝试过的,但不合逻辑。 First_num++ 只是复制 2 个数字而不是第二个数字,last_num++ 也是如此 我如何继续这样复制并找出它们 我知道我可以反向计算,因为输出是相同的。我可以通过反转计数来做到这一点,但问题要我一个一个地交换字符。请帮忙,谢谢。
#include <iostream>
#include <cctype>
using namespace std;
void reverse_word(char character[]);
int main()
{
char characters[50];
reverse_word(characters);
return 0;
}
void reverse_word(char character[])
{
char temp1[2] = "\0";
char temp2[2] = "\0";
char first_num = 1;
char last_num = 1;
cout << "Enter a word to reverse first word last word second first second last and so on: ";
cin >> character;
for (int i=0;i<strlen(character)/2;i++)
{
strncpy(temp1, character, first_num);
first_num++;
strcpy(temp2 , &character[strlen(character)-last_num]);
last_num++;
}
for (int i = 0; i < strlen(character) / 2; i++)
{
cout << temp2;
cout << temp1;
}
}
【问题讨论】:
-
这一定是来自一些在线编码/黑客/竞赛网站的无数无意义的谜题之一。不幸的是,那些无用的网站只不过是一堆谜题,并没有任何材料可以教授有效实现这些基本算法所需的各种 C++ 技术和算法。这只能在一本好的 C++ 教科书中找到。显示的代码比它需要的要长和复杂得多。这里没有快速修复。整个方法是错误的,必须使用适当的算法和 C++ 库函数从头开始重新实现。
-
我的讲师说 std 很好,但是对于没有很多 c 预处理器指令的程序或者为了我们现在方便的东西,它不需要它。对于古代c库我真的不知道我的大学在全国排名第二
-
@RyanTan -- 说 std 很好,但是对于没有很多 c 预处理器指令的程序来说不需要它 -- 如果真的这么说,你的讲师是
C程序员,伪装成 C++ 老师,IMO。此外,您对您想要做什么的描述令人困惑。您要回答的实际问题是什么? -
我可以向您保证,您不是第一个在 Stackoverflow 上发布证据证明 C++ 讲师不称职的人。不幸的是,这里没有好的解决方案,除了尝试自己学习 C++,使用经过编辑的高质量教科书。
-
@RyanTan 另外,如果是
reverse_word2的问题,你为什么要发布不相关的功能,例如reverse_word和其他功能?理想的程序应该是一个简单的main()程序,它调用reverse_word2并带有演示问题的示例数据。
标签: c++