关于c++中char char*赋值以及函数的传值

这个问题通过创造一个类来体现

首先是头文件

#define STACK_H_
class Stack
{
private:
    char a[10][30];\建立一个二位字符数组
    int top;\设置栈顶并规定上述二维数组的行数
public:
    Stack();\创造一个Stack类
    bool empty();\检测是不是空栈
    bool full();\检测是不是满栈
    bool push();\在栈顶放入元素
    bool pop(char *b);\将栈顶元素传值给char型指针b
};
#endif

接下来是定义各种函数的cpp

#include<iostream>
#include"stack.h"
using namespace std;
Stack::Stack()//创造一个栈类
{
    top=0;
}
bool Stack::empty()//判断是不是空栈
{
    return (top==0);
}
bool Stack::full()//判断是不是满栈
{
    return (top==5);
}
bool Stack::push()//进栈,注意观察这个函数是如何判断输入结束以及进行赋值的
{
    if(top<5)
    {    
        cout<<"Plese enter: ";
        int j=0;
        while((a[top][j]=cin.get())!='\n')
        {
            j++;
        }
        a[top][j]='\0';
        top++;
        cout<<endl;
    }
    else
        return false;
    return true;
}
bool Stack::pop(char *b)//出栈,同样注意观察这个函数是如何给char*赋值的
{
    if(top>=0)
    {
        top--;
        b=a[top];
        while(*b!='\0')
        {
            cout<<*b;
            b++;
        }
        cout<<endl;
        top--;
    }
    else
        return false;
    return true;
}

重点观察这个函数注释的部分

最后一个便是执行cpp啦

#include<iostream>
#include"stack.h"
using namespace std;
int main()
{
    Stack ac;
    char *b;
    ac.push();
    ac.push();
    ac.push();
    ac.pop(b);
    ac.pop(b);
    
    return 0;
}

重点看第二个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值