将撇号作为切换的案例

时间:2013-11-10 19:53:28

标签: c switch-statement apostrophe

我的代码:

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\'* - '不承认

3 个答案:

答案 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)

我已经看过答案,您需要做的就是阅读帖子:

How to convert string to char array in C++?

并在Arthur的回答中使用代码。

答案 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;
}