main函数的参数解析及实现整数计算器

main函数其实是有参数的

int main(int argc , char* argv[],char* envp[])
{
    //代码片
}

这里有三个参数 :
第一个:argc是个整形变量,表示命令行参数的个数(含第一个参数,就是含.exe的字符)
第二个:argv是个字符指针的数组,每个元素是一个字符指针,指向一个字符串,这些字符串就是命令行中的每一个参数
第三个:envp是字符指针的数组,数组的每一个原元素是一个指向一个环境变量(字符串)的字符指针

int main(int argc, char* argv[], char* envp[])
{
    int i=0;
    for(i=0; i<argc; i++)
    {
        printf("%s\n",argv[i]);
    }
    return 0;
}

这里的输出结果是可执行程序的.exe文件的路径
在argv数组的最后一个元素存放的是NULL,这是argv数组的结束标志

int main(int argc,char* argv[],char* envp[])
{
    int i=0;
    while(envp[i] != NULL)
    {
        printf("%s\n",envp[i]);
        i++;
    }
    return 0;
}

在这里输出的结果是环境变量
envp数组的最后一个元素也存放的是NULL指针

使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”加法“-s”减法“-m”乘法“-d”除法,后面两个参数 为操作数

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int myadd(int x,int y)
{
    return x+y;
}
int mysub(int x,int y)
{
    return x-y;
}
int mymul(int x,int y)
{
    return x*y;
}
int mydiv(int x,int y)
{
    return x/y;
}
void usage(const char* proc)
{
    printf("usage:\r\n\t%s[-a/-s/-m/-d]data1 data2\n",proc);
}
int main(int argc,char* argv[])
{
    if(argc != 4)
    {
        usage(argv[0]);
        return 1;
    }
    int res = 0;
    if(strcmp(argv[],"-a")==0)
    {
        res=myadd[atoi(argv[2]),[atoi(argv[3])];
    }
    else if(strcmp(argv[],"-s")==0)
    {
        res=mysub[atoi(argv[2]),[atoi(argv[3])];
    }
    else if(strcmp(argv[],"-m")==0)
    {
        res=mymul[atoi(argv[2]),[atoi(argv[3])];
    }
    else if(strcmp(argv[],"-d")==0)
    {
        res=mydiv[atoi(argv[2]),[atoi(argv[3])];
    }
    else
    {
        usage(argv[0]);
        return 1;
    }
    printf("result:%d\n",ret);
    return 0;
}
//atoi 可以把字符转化成整形

如果有什么不对的地方,可以评论告诉我,望指导!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值