C比较char不起作用

时间:2018-07-06 08:59:04

标签: c struct char compare do-while

我们应该编写一本家庭书,其中得到了这样的结构

typedef struct{
   struct Entry *before;
   char date[8];
   char type;
   float price;
   char comment[250];
   struct Entry *following;
} Entry;

您应该调用的第一个函数是

addEntry()

您可以在其中将条目添加到户口簿中。当您输入类型时,您要说出其收入还是费用。我的问题是,if子句无法正确比较,因为它一直在要求新的inout。

do {
       printf("Income or Expense?: ");
       scanf(" %c", &(ptr->type));
       printf("%c\n", ptr->type);
       if(ptr->type == 'i')
              ptr->type = "I";
       if(ptr->type == 'e')
              ptr->type = "E";
} while(ptr->type != 'I' || ptr->type != 'E');

当我敲击键盘上的字母时,printf函数会输出正确的字母,但是即使我以大写字母do{} while()或{{ 1}}英寸。它永远不会使大写的'E''I'小。

1 个答案:

答案 0 :(得分:0)

(*ptr).type != 'I' || (*ptr).type != 'E'

始终为真。你是说:

(*ptr).type != 'I' && (*ptr).type != 'E'