gpt4 book ai didi

c++ - 如何将字符串放入字符堆栈并打印出来? C++

转载 作者:太空狗 更新时间:2023-10-29 20:10:55 24 4
gpt4 key购买 nike

我正在向我的函数传递一个字符串,该函数应该使用该字符串将各个字符放入堆栈中。然后堆栈应该把它吐出来(因为它是一个堆栈,所以应该颠倒过来)。例如,如果我的字符串是 hello,它应该打印“olleh”。但相反,我越来越糟糕了。我认为这与我每次都将 ch 设置为不同的字符有关,但我不确定如何以不同的方式输入这些字符。

void Stack::function2reverse(string myString) {

int countItIt = 0;
int sizeOfString = myString.size();
char Ch ;
for (int i= 0; i< sizeOfString; x++)
{
Ch = myString[x];
stack.push(Ch);
countIt ++;

}

while (countIt != 0)
{
cout << Ch;
stack.pop();
countIt --;
}
}

最佳答案

cout << Ch; - 你每次都打印相同的字符(最后一个输入,所以 'o' )。

相反,打印堆栈中的顶部字符:std::cout << stack.top() .

std::stack跟踪它自己的 size ,所以你也不必担心。然后您可以将打印循环替换为:

while (!stack.empty()) {
std::cout << stack.top();
stack.pop();
}

当然,标准库提供了一个 std::reverse 无论如何功能,所以如果这不仅仅是学习 std::stack 的练习,您可以使用它(我还可以想到其他几件事情,具体取决于您要实现的目标):

std::string s = "hello";
std::reverse(std::begin(s), std::end(s));
// s now contains "olleh"

您可能还想阅读 why using namespace std; is a bad practice.

关于c++ - 如何将字符串放入字符堆栈并打印出来? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35801254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com