From 008a237109dcbdc8ef0645b8409e1f621a219bc7 Mon Sep 17 00:00:00 2001 From: Simone Franza <simone.franza@student.tugraz.at> Date: Fri, 4 Dec 2020 14:08:52 +0100 Subject: [PATCH] clear buffer after wrong input --- framework.c | 16 ++++++++++++++-- framework.h | 8 ++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/framework.c b/framework.c index b855eac..410537f 100644 --- a/framework.c +++ b/framework.c @@ -16,6 +16,7 @@ void generatePlayfairSquare(char *square) printf("%s ", KEY_PROMPT); fgets(key, SIZE_BUFFER, stdin); if(checkStringValidity(key, MAX_KEY_LENGTH, IS_KEY)) break; + clearBuffer(key, SIZE_BUFFER); } prepareKey(key); @@ -121,7 +122,8 @@ void appendAlphaToKey(char *key) { char alpha[SQUARE_SIDE * SQUARE_SIDE + 1] = ALPHA; int length = stringLength(key); - for(int counter = 0; counter < SQUARE_SIDE * SQUARE_SIDE + 1; counter++) { + for(int counter = 0; counter < SQUARE_SIDE * SQUARE_SIDE + 1; counter++) + { if(stringContainsChar(key, alpha[counter]) == NOT_FOUND) *(key + length++) = alpha[counter]; } @@ -129,9 +131,19 @@ void appendAlphaToKey(char *key) } //----------------------------------------------------------------------------- -int stringContainsChar(char *text, char to_find) { +int stringContainsChar(char *text, char to_find) +{ do { if(*text == to_find) return FOUND; } while(*text++); return NOT_FOUND; } + +//----------------------------------------------------------------------------- +void clearBuffer(char *text, int buffer_len) +{ + for(int counter = 0; counter < buffer_len; counter++) + { + text[counter] = '\0'; + } +} diff --git a/framework.h b/framework.h index 75c96a7..9b3c789 100644 --- a/framework.h +++ b/framework.h @@ -131,3 +131,11 @@ void appendAlphaToKey(char *key); // @return FOUND(1) or NOT_FOUND(-1) // int stringContainsChar(char *text, char to_find); + +//----------------------------------------------------------------------------- +// Zeroes the content of a string +// +// @param text string to clear +// @param buffer_len length of string +// +void clearBuffer(char *text, int buffer_len); -- GitLab