[英]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.