簡體   English   中英

C中的字符比較?

[英]Character comparison in C?

當我傳入我指定的字符之一時,它返回2 ,好像它是不正確的字符嗎? 我比較不正確嗎?

int valid_character(char character) {
    if (character == '*' || character == '%' || character == '#') {
        return 1;
    } else {
        return 2;
    }
}

編輯:

問題是我在哪里調用該函數:

if (selection == 1) {
    printf("Enter character, width and length: ");
    scanf("%c %d %d", &c, &width, &length);
    putchar(c);
    int response = valid_character(c);
    if (response == 1) {
        draw_rectangle(width, length, c);
    } else {
        printf("%d", response);
        printf("Invalid data provided.");
    }
}

當我調用putchar(c); 即使我傳入了%它也會打印出1為什么呢?

您沒有發布整個功能! 您可能在代碼片段之前還有另一個scanf ,在輸入流中留下了暫掛\\n

當您發現自己時,可以通過閱讀以下字符來跳過\\n和任何其他空格:

scanf(" %c%d%d", &c, &width, &length);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM