我是一個初學者程式員,有一個我無法解決的問題。我的任務是創建一個密碼檢查程式,它可以從標準輸入中獲取無限數量的密碼(在一個檔案中并將每一行作為單獨的密碼讀取)并在四個不同的安全級別上測驗它們。我們不能使用 string.h、ctype.h、malloc、free...
我被困在第一級,即“測驗密碼包含小寫字母和大寫字母。我能夠檢查它是否至少包含其中一個,或者它是否只包含兩個的組合,代碼下面,但我迷路了。請幫忙。
while (string[i] != '\0')
{
if (isChar_abc(string[i]) == false)
{
if (isChar_ABC(string[i]) == true)
{
i ;
}
else if (isChar_ABC(string[i]) == false)
{
printf("Error, end code\n");
return 0;
}
}
else if (isChar_ABC(string[i]) == false)
{
if (isChar_abc(string[i]) == true)
{
i ;
}
else if (isChar_abc(string[i]) == false)
{
printf("Error, end code\n");
return 0;
}
}
}
uj5u.com熱心網友回復:
檢查它是否包含遍歷字串并設定標志(如果找到每個標志)
char containsboth(char* str) {
int i;
char lower = false, upper = false;
for (int i = 0; str[i] != '\0'; i ) {
lower = lower || (str[i] >= 'a' && str[i] <= 'z');
upper = upper || (str[i] >= 'A' && str[i] <= 'Z');
if (lower && upper) break;
}
return (lower && upper);
}
檢查:C 編程:如何檢查輸入字串是否包含大寫和小寫組合
uj5u.com熱心網友回復:
OP 的代碼用于i ;計算大寫和小寫字母。
假設if (i >= 2 /* or 1 */)發生了 final ,但它不會檢測是否同時發生了上限和下限。
最好使用 2 個不同的 i
upper_i ;
...
lower_i ;
示例代碼簡化:
int contains_upper_and_lower(const char *string) {
int contains_upper = 0;
int contains_lower = 0;
int i;
while (string[i]) {
if (isChar_ABC(string[i])) contains_upper = 1;
else if (isChar_abc(string[i])) contains_lower = 1;
i ;
}
return contains_upper && contains_lower;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/335628.html
上一篇:為什么創建二叉樹會出現問題?
