对于家庭作业的一部分,我需要循环一个用户输入单词的提示,直到他们输入20个单词或直到他们输入单词“完成”为止。目前,我已经满足了这两个参数,但是当我输入“完成”字样时,它也会被扫描到数组中,这不是我想要做的。
这是我目前的职能:
int row = 0;
int column = 0;
int i = 0;
while(i < 20)
{
printf("Enter words you would like hidden in the puzzle. Type 'done' when finished:\n");
scanf("%s",a[i]);
if(strcmp(a[i],"done") == 0)
{
break;
}
if((strlen(a[i]) > row) || (strlen(a[i]) > col))
{
printf("Error. Word was too long to enter into puzzle.\n");
}
else
{
i++;
}
}
阵列&#39; a&#39;是一个字符串数组。我知道第scanf("%s",a[i]);
行正在扫描“完成”字样。进入阵列,我只是不知道如何调整它以便不会发生。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
试试这个:
char input[256];
while(i < 20)
{
printf("Enter words you would like hidden in the puzzle. Type 'done' when finished:\n");
scanf("%s",&input);
if(strcmp(input,"done") != 0)
{
strcpy(a[i],input);
if((strlen(a[i]) > row) || (strlen(a[i]) > col))
{
printf("Error. Word was too long to enter into puzzle.\n");
}
i++;
}
else
break;
}