1

My code:

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;  

I'm executing program with: ./a.out "AB+A'*" but everything what I see is that apostrophe is not recognized. How I should write this switch case? Of course I can't give ./a.out "AB+A\'*" - \ not recognized and ./a.out AB+A\'* - ' not recognized

4

3 回答 3

1

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

如何在 C++ 中将字符串转换为 char 数组?

并在 Artur 的答案中使用代码。

于 2013-11-10T20:44:26.800 回答
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 回答