我的代码:
char function [100];
switch (function [i]) {
case '+' : {
} break;
case '*': {
}break;
case '\'' :{
}break;
default: {
printf ("argument %c not recognized \n", function [i]);
return 1;
}
} return 0;
我正在执行程序:
./a.out "AB+A'*"
但我所看到的一切都是撇号不被认可。我应该怎么写这个开关盒?我当然不能给
./a.out "AB+A\'*"
- \无法识别
和
./a.out AB+A\'*
- '不承认
答案 0 :(得分:1)
你错过了休息
case '\'': {
if (wskaznikStosu < 1) {
printf ("\nZa dużo operandów \n");
return 1;}
else {
int a = stos [wskaznikStosu - 1];
wskaznikStosu --;
stos [wskaznikStosu] = not (a);
wskaznikStosu ++;
}
}
// YOU ARE MISSING A BREAK HERE AND FALLING INTO THE DEFAULT
default: {
答案 1 :(得分:1)
答案 2 :(得分:0)
这就是我所做的。它似乎有效:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
if (argc != 3)
{
fprintf (stderr, "argument error\n");
return EXIT_FAILURE;
}
for (i = 0; i < atoi(argv[2]); ++i) {
switch (argv[1][i]) {
case '+' :
printf ("+\n");
break;
case '*':
printf ("*\n");
break;
case '\'' :
printf ("'\n");
break;
default:
printf ("argument %c not recognized \n", argv[1][i]);
return EXIT_FAILURE;
}
}
return EXIT_SUCCESS;
}