我的功能:雙重要求輸入,如果輸入錯誤給出
//Check Character Case(Upper/Lower Case). If Upper Convert to Lower Case.
char checkLetterCase(char letter){
if(letter >= 65 && letter <= 90){
letter = tolower(letter);
return letter;
}
else if(letter >= 97 && letter <= 122){
return letter;
}
else{
return 0;
}
}
//Add the Specified Letter by Creating a New Node in the Letter List defined
void addLetter(letterListT *letListHead, char letter){
letterListT *newNode;
newNode = (letterListT *)malloc(sizeof(letterListT));
//Check Case(lowe/upper)
letter = checkLetterCase(letter);
//This may only occur on user input
while(letter == 0){
printf("Guess a letter: ");
scanf("%c", &letter);
letter = checkLetterCase(letter);
}
newNode->letter = letter;
newNode->nxt = letListHead->nxt;
letListHead->nxt = newNode;
}
我的主要電話:
addLetter(unusedLetList, i=0);
,這是我outpun上運行:
Guess a letter: 6
Guess a letter: Guess a letter: t
和我的問題是:爲什麼當我把一個非字符我得到「猜字母」的消息兩次?
這是真正有用的,但我可以問爲什麼字符緩衝區[]尺寸爲10時,我們最多需要輸入1(char)+1('\ n')?就是想。 –
它可能有一個最小大小爲4.Two的第一個和第二個字符,一個用於'\ n'字符和一個用於終止符。第二個字符用於查看用戶是否輸入了太長的字符串,在這種情況下輸入是錯誤的。 –