在我的输出中,一切都很好,除了它需要一个 NULL 字符是正确的,错误的是在 for 循环检查数组*ans[]={"zero","one","two"};
和inp
: 最后一个数字sel
之间的条件之后2
,我的条件仍然为真,它sel++
执行使sel = 3
这是我的限制,导致 NULL 输入被接受。我将如何限制 sel
我的 for 循环超出其限制?
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main(){
char inp[256]={0},
*ans[]={"zero","one","two"};
int sel,
ans_cnt=sizeof(ans)/sizeof(ans[0]); // Equals to 3
do{
clrscr();
printf("Enter Any:\n\"zero\" or \n\"one\" or \n\"three\": ");
gets(inp);
for(sel=0;sel<ans_cnt && strcmp(inp,ans[sel]);sel++);
}
while(strcmp(inp,ans[sel]));
printf("Valid Answer!");
getch();
}