1

私のコード:

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'*" います:しかし、私が見ているのは、アポストロフィが認識されていないということです。この switch ケースはどのように記述すればよいですか? もちろん、私は与えることはできません ./a.out "AB+A\'*" - \ 認識されず、 ./a.out AB+A\'* - ' 認識されません

4

3 に答える 3

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: {
于 2013-11-10T20:09:41.153 に答える
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;
}
于 2013-11-10T21:03:22.513 に答える