C++ 如何将字符串推入堆栈?

C++ 如何将字符串推入堆栈?,c++,c,C++,C,我想把红色、蓝色和绿色的线塞进一堆 //This is my structure containing the stack and top pointer typedef struct{ char stk[10]; int top; }STACK; //This is my push funtion void push(STACK stak, char str[]) { stak->top++; strcpy(stak->stk[stak->

我想把红色、蓝色和绿色的线塞进一堆

//This is my structure containing the stack and top pointer

typedef struct{
    char stk[10];
    int top;
}STACK;

//This is my push funtion

void push(STACK stak, char str[])
{
    stak->top++;
    strcpy(stak->stk[stak->top], str);
    return;
}
我想像这样堆起来

red
blue
green

我做得对吗?

对于基本问题,您的问题的答案是堆栈本身的定义

堆栈是一种基本的数据结构,在逻辑上可以认为是由真实的物理堆栈或堆栈表示的线性结构,在这种结构中,项的插入和删除发生在称为堆栈顶部的一端

您所做的是创建一堆字符,并尝试将字符串推送到其中。 相反,您应该创建一个字符串堆栈

typedef struct{
string stk[10];
int top;
}STACK;

void push(top,string str)
{
   top++;
   //overflow condition here
   strcpy(STACK.stk[top],str);
}

还有很多事情在C和C++中是不同的,所以请先决定你要用哪种语言。这将帮助您获得更好的答案。

否。您的堆栈包含10个字符的数组,您将向其中推送3个字符串。你得到了什么结果?是C还是C++?请选择一种语言。它会崩溃。所以我需要你们的帮助。请修改我的程序使它工作。是否可以将字符串推入堆栈的1个索引中?您是通过值传递堆栈,而它应该通过引用传递,例如void push(stack&stak,char str[])。此外,身体功能应该是“strcpy(stak->stk[++stak->top],str);”我不知道你可以有一个字符串数组。谢谢你,伙计。这里是新手