C语言实用算法系列之DOS传参“加减乘除计算器”

简介

主要采用str族函数实现字符检测,只能用DOS传参进行计算,详见运行结果。

代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/*
int main(int argc, char** argv)
{
int i=0;
printf("总共有%d条有效字符串\n",argc);
while(argv[i])
puts(argv[i++]);
return 0;
}*/

void Calc(char* str)
{
    
    
	char* pRes = strpbrk(str, "+-*/%");
	if (!pRes)
	{
    
    
		puts("本软件支持+-*/,请按格式输入,例如:输入xx 1+2 回车"); //xx表示程序名
		return ;
	}
	char c = *pRes;
	double result = 0;
	double left = atof(str);
	double right = atof(pRes + 1);
	switch (c)
	{
    
    
	case '+':
		printf("=%lf\n", left + right);
		break;
	case '-':
		printf("=%lf\n", left - right);
		break;
	case '*':
		printf("=%lf\n", left * right);
		break;
	case '/':
		printf("=%lf\n", left / right);
		break;
	case '%':
		printf("=%d\n", (int)left % (int)right);
		break;
	}
}

int main(int count, char** ps)
{
    
    
	if (count<2)
	{
    
    
		puts("本软件支持+-*/,请按格式输入,例如:输入xx 1+2 回车");
		return -1;
	}
	//假设输入:DOS 33+52
	char s[64] = {
    
     0 };
	int i = 0;
	while (ps[++i])
		strcat(s, ps[i]);
	Calc(s);
	//字符串查找函数 strchr strpbrk strtok strstr
	return 0;
}

运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wlwdecs_dn/article/details/111566116