請問我如何檢查第二個條件(使用演算法代替,因為我期待其他密碼,這意味著我需要檢查所有密碼,基本上不可能知道將輸入的密碼,所以我需要執行此任務的演算法(反轉 2 個連續字符)(例如密碼可能是:(abcdefg)、(hhgfts543)、(GFYS!-rii))??。
#include <stdio.h>
#include <string.h>
int main (void) {
char pass[50];
char validPass[50]="abc123";
printf("Your password: ");
scanf("%s", pass); // the expected password doesn't contain a space
if (strcmp(pass, validPas)==0) {
printf("Password match...!");
}
else if (strcmp(pass, "bac123")==0 ||
strcmp(pass, "acb123")==0 ||
strcmp(pass, "ab1c23")==0 ||
strcmp(pass, "abc213")==0 ||
strcmp(pass, "abc123")==0 ||) {
//An algorithm which checks for inverting 2 consecutive characters
printf("CLOSE TO GUESSINGING THE PASSWORD !");
}
else
printf("WRONG PASSWORD !");
return 0;
}
uj5u.com熱心網友回復:
你可以使用這樣的方法:
// ALT: declare variable as false
for (int i = 0; i<s.Length-1; i ) /*loop through the characters except the last
(we want to swap each character with the next one)*/
{
if (s.Substring(0, i) /*unchanged first part*/
s[i 1] s[i] /*swapped characters*/
s.Substring(i 2, s.Length - i - 2) /*rest of the string*/
== test)
{
return true; // ALT: variable to true
}
}
return false; // remove in ALT
抱歉沒有使用 c。這個點應該會遇到。
您也可以將第一個變數宣告為 false,只有在滿足條件時才將其更改為 true。
(標記為“ALT”)
我希望您理解我的意圖并能夠使用我的意見來解決您的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/380465.html
標籤:C
