C中的字符串数组

时间:2014-03-31 01:56:55

标签: c arrays

对于家庭作业的一部分,我需要循环一个用户输入单词的提示,直到他们输入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]);行正在扫描“完成”字样。进入阵列,我只是不知道如何调整它以便不会发生。 有人可以帮我解决这个问题吗?

1 个答案:

答案 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;
}