Saya memiliki metode berikut untuk menghasilkan string yang harus memenuhi persyaratan, tetapi saya memerlukan semacam klausa untuk mengulang kembali input pengguna jika persyaratan validasi tidak terpenuhi. Saya tahu di Java ada pembacaan berikutnya tetapi saya tidak yakin kode apa yang diperlukan dalam C, saya juga tidak berpikir pernyataan saya yang lain memiliki sintaks yang benar jika ada yang dapat menemukan kesalahannya. Beberapa tip atau saran akan sangat membantu, Terima kasih.
void validatePass()
{
FILE *fptr;
char password[MAX+1];
int iChar,iUpper,iLower,iSymbol,iNumber,iTotal,iResult,iCount;
//shows user password guidelines
printf("\n\n\t\tPassword rules: ");
printf("\n\n\t\t 1. Passwords must be at least 9 characters long and less than 15 characters. ");
printf("\n\n\t\t 2. Passwords must have at least 2 numbers in them.");
printf("\n\n\t\t 3. Passwords must have at least 2 uppercase letters and 2 lowercase letters in them.");
printf("\n\n\t\t 4. Passwords must have at least 1 symbol in them (eg ?, $, £, %).");
printf("\n\n\t\t 5. Passwords may not have small, common words in them eg hat, pow or ate.");
//gets user password input
printf("\n\n\t\tEnter your password following password rules: ");
scanf("%s", &password);
iChar = countLetters(password,&iUpper,&iLower,&iSymbol,&iNumber,&iTotal);
if(iUpper < 2)
{
printf("Not enough uppercase letters!!!\n");
}
else if(iLower < 2)
{
printf("Not enough lowercase letters!!!\n");
}
else if(iSymbol < 1)
{
printf("Not enough symbols!!!\n");
}
else if(iNumber < 2)
{
printf("Not enough numbers!!!\n");
}
else if(iTotal < 9 && iTotal > 15)
{
printf("Not enough characters!!!\n");
}
iResult = checkWordInFile("dictionary.txt",password);
if( iResult == gC_FOUND )
{
printf("\nFound your word in the dictionary");
}
else if
{
printf("\nCould not find your word in the dictionary");
}
iResult = checkWordInFile("passHistory.txt",password);
else if( iResult == gC_FOUND )
{
printf("\nPassword used");
}
else if
{
printf("\nOk to use!");
}
else
{
printf("\n\n\n Your new password is verified ");
printf(password);
}
//writing password to passHistroy file.
fptr = fopen("passHistory.txt", "w"); // create or open the file
for( iCount = 0; iCount < 8; iCount++)
{
fprintf(fptr, "%s\n", password[iCount]);
}
fclose(fptr);
printf("\n\n\n");
system("pause");
}//end validatePass method