Can';不能比较字符

Can';不能比较字符,c,C,我有两个问题: 第一个问题是我不能在中为(apr=0;apr

我有两个问题:

第一个问题是我不能在
中为(apr=0;apr
逐个添加字符。例如,如果我的aprno=4,在输入A后,它要求输入4th apr,但当我输入AAAA…,它也可以工作,而且它只适用于整数

第二个问题是char和int比较。我知道我不能比较它们,但我还没有找到解决办法,在任何地方都可以做到

addnoaprons:
    system("cls");
    printf("Add number of available aprons: ");
    scanf("%d", &aprno);
    goto addtypeaprons;

addtypeaprons:
    if (aprno < 1) goto addnoaprons;
    else {
        system("cls");  
        printf("Add types for %d aprons total:", aprno);
        for (apr = 0; apr < aprno; apr++)
            {   
                system ("cls");
                printf("Aprons total: %d", aprno);
                printf("\n\nNo. %d apron type: ", apr + 1);
                scanf("%c", &pismapr[apr]);
                if (pismapr == 'A') poleapr[apr] = 1;
                if (pismapr == 'B') poleapr[apr] = 2;
                if (pismapr == 'C') poleapr[apr] = 3;
                if (pismapr == 'D') poleapr[apr] = 4;
                else goto addtypeaprons;
            }
            goto showaprons;
        }
addnoaprons:
系统(“cls”);
printf(“添加可用围裙的数量:”);
scanf(“%d”和aprno);
goto addtypeaprons;
addtypeaprons:
如果(aprno<1)转到addnoaprons;
否则{
系统(“cls”);
printf(“添加%d个围裙的类型总计:”,aprno);
对于(apr=0;apr
pismapr
看起来是一个字符数组
;您不能直接将其与单个
字符进行比较。您只需要比较感兴趣的数组元素:

if (pismapr[apr] == 'A') poleapr[apr] = 1;
另外,我必须告诉你,这是我多年来见过的最奇怪的C代码。你应该将代码块移动到函数中,然后在循环中调用它们,而不是跳转到
goto
;i、 e

while (aprno < 1)
    aprno = readaprno();
while(aprno<1)
aprno=readaprno();
问题1:嗯? 我不知道你的第一个问题是什么,也无法真正理解你的要求。对不起

问题2:比较整数和字符 是的,您可以在合理的范围内比较
int
s和
char
s。但是,您可能不想做的是将指针的地址与
char
进行比较

当我看到你的问题和这个:

scanf("%c", &pismapr[apr]);
我只能假设您的意思是
pismapr
是一个
char
s或
int
s的数组,因为我没有看到声明。因此,您可能需要切换这些:

if (pismapr == 'A')
致:

但这是假设pismapr的类型,我们不知道你的代码片段

问题3:Gotos 失去他们。真正地或者告诉我你为什么需要它们

问题4:调用
system()

别这样。这是一个坏主意,你也许可以用其他方法来做。如果你真的想这样做,你确定你需要用一个C程序,而不是一个shell脚本来完成所有这些吗?

我很好奇为什么
goto
s?哦,很有趣。。。有人试图用C代码编写程序集。。。实现可以使用shell脚本完成的功能。上帝,为什么?你的问题一点也不清楚。你能提供一个完整的、可编译的例子,并解释你给它什么样的输入,你期望什么样的输出,你得到什么样的输出吗。另外,
system(“cls”)
在非Windows shell中也会很有趣。这里的问题是什么?在C语言中,你可以比较一个字符和一个int(将字符转换成int并使用==),但不知何故,我认为这不是你想要做的。我给你的第一个建议就是停止使用goto's your code(你的代码)已经是意大利面了,当你有太多的行时,我不想看到这个。想想可怜的戴夫,他必须在你之后接这个电话。哎呀,我把一些人弄错了方向。对不起,如果我冒犯了你:)谢谢你的回答。
if (pismapr[apr] == 'A')