I think this should be enough to give you an idea:
#include<stdio.h>
int main(void){
int validate;
char menu_choice;
validate = 0;
do{
printf("Would you like another go?(y/n): " );
if(scanf(" %c", &menu_choice ) == 1){
if((menu_choice=='y') || (menu_choice=='Y')){
printf("You choosed Yes
");
validate = 1;
}else if((menu_choice=='n') || (menu_choice=='N')){
printf("You choosed No
");
validate = 2;
}else{
printf("Wrong Input.
");
validate = 0;
}
}
}while( validate == 0 || validate == 1);
printf("Goodbye
");
return 0;
}
Would you like another go?(y/n): 1
Wrong Input.
Would you like another go?(y/n): k
Wrong Input.
Would you like another go?(y/n): y
You choosed Yes
Would you like another go?(y/n): Y
You choosed Yes
Would you like another go?(y/n): N
You choosed No
Goodbye
For things like this i prefer instead something like this:
#include<stdio.h>
int checkInput(int min, int max){
int option,check;
char c;
do{
printf("Please type a number beetwen %d and %d: ",min,max);
if(scanf("%d%c",&option,&c) == 0 || c != '
'){
while((check = getchar()) != 0 && check != '
');
printf(" I sayed a Number please
");
}else if(option < min || option > max){
printf(" The number has to be beetwen %d and %d
",min,max);
}else{
break;
}
}while(1);
return option;
}
int main(void){
int number = checkInput(0,1);
printf("
Your number is %d
",number);
return 0;
}
Please type a number beetwen 0 and 1: 2e
I sayed a Number please
Please type a number beetwen 0 and 1: g45
I sayed a Number please
Please type a number beetwen 0 and 1: 75
The number has to be beetwen 0 and 1
Please type a number beetwen 0 and 1: 1
Your number is 1
But if you insist to use yes/no instead of Y/N, then;
#include<stdio.h>
#include<strings.h>
int main(void){
int validate;
char menu_choice[5];
char *yes = "yes";
char *no = "no";
validate = 0;
do{
printf("Would you like another go?(yes/no): " );
if(scanf(" %s", menu_choice ) == 1){
if((strcasecmp(menu_choice, yes) == 0)){
printf("You choosed Yes
");
validate = 1;
}else if((strcasecmp(menu_choice, no) == 0)){
printf("You choosed No
");
validate = 2;
}else{
printf("Wrong Input.
");
validate = 0;
}
}
}while( validate == 0 || validate == 1);
printf("Goodbye
");
return 0;
}
Output:
Would you like another go?(yes/no): sadasdas
Wrong Input.
Would you like another go?(yes/no): 213212
Wrong Input.
Would you like another go?(yes/no): Yes
You choosed Yes
Would you like another go?(yes/no): YeS
You choosed Yes
Would you like another go?(yes/no): YES
You choosed Yes
Would you like another go?(yes/no): No
You choosed No
Goodbye
Please make notice that strcasecmp is found in strings.h and not in string.h.