程序接受三個命令列參數:兩個整數與運算選項(-a加、-s減、-m乘、-d除),輸出結果。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compute(int x, char *op, int y) {
if (strcmp(op, "-a")==0) return x+y;
if (strcmp(op, "-s")==0) return x-y;
if (strcmp(op, "-m")==0) return x*y;
if (strcmp(op, "-d")==0) return x/y;
return 0;
}
int main(int argc, char *argv[]) {
if (argc != 4) { printf("用法: %s num1 -op num2\n", argv[0]); return 1; }
int n1 = atoi(argv[1]), n2 = atoi(argv[3]);
int res = compute(n1, argv[2], n2);
printf("%d %s %d = %d\n", n1, argv[2], n2, res);
return 0;
}
> calc 10 -a 5
10 -a 5 = 15
> calc 10 -m 3
10 -m 3 = 30
若要求從標準輸入讀取 10 + 5 格式,可在 main 內 scanf 解析後映射到選項字符串。