0
我正在用C++編寫hang子手遊戲,我想知道如何確保我的第一個用戶輸入的單詞只包含字母字符,沒有別的。當他們已經輸入的單詞無效時,我必須提示用戶輸入一個新單詞。陣列邊界檢查和輸入驗證
有我用來做的功能,但對於我的一些檢查邊界功能無法正常工作。請幫助,我不知道如何解決它。在我的第一個函數中,我詢問用戶的輸入,然後使用另一個函數來錯誤檢查這個單詞。 word1是存儲我的第一個單詞的數組,我假設現在這些字母都是小寫。所以我使用字符的ASCII值來確保它位於邊界內。但說如果我輸入45,它確實要求我重新輸入該單詞,但不管它是什麼,第二個單詞都將被接受。它可能是| *%^%它接受它無論如何。
void CheckBound (char word1[], int SIZE1)
{
int i;
int w1[SIZE4];
int found;
for (i=0;i<strlen(word1);i++)
{
w1[i]=(int)word1[i];
if (w1[i] >= 97 && w1[i] <= 122)
found=1;
else
{
printf("Please re-enter your word: ");
fgets(word1, SIZE1, stdin);
word1[strlen(word1)-1]='\0';
printf("%s \n", word1);
}
}
return;
}
根據您的要求,您可以使用'isalpha(w1 [i])',如果需要與'&& islower(w1 [i])'組合使用。你可以在'#include'中找到這兩個函數。 –