如何在C中每句插入不超过5个句子和不超过50个字母

时间:2015-01-13 15:33:47

标签: c arrays max letter

在每个句子之前,它需要说出我写的句子的数量。从一开始计算。 我的意思是:

How many sentences you want to enter [1-5]? 
2
sentence 1: write what you want
sentence 2: here as long as its less then 50 letters

我的问题是我不知道如何限制字母数量,而不需要全部插入。 如果我写

 for(i=0; i<50; i++)

我将需要输入所有50个字母,但如果我想要我甚至只能写1个。 这就是我到目前为止所做的事情:(请注意,我不需要询问用户他想要输入多少个字母)

char text[5][50]={0};
int x=0, i=0, n=0, m=0;

   printf("How many sentences you want to enter [1-5]?\n");
   scanf("%d", &n);
   printf("how many letters [1-50]?\n");
   scanf("%d", &m);

   for (x=1; x<=n; x++)// will print max of 5 sentences
   {
       printf("Sentence %d: \n", x);
        for(i=0; i<m; i++)// will print max of 50 letters
        {
            scanf(" %c", &text[x][i]);
        }
   }

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

for(i=0;i<n;i++)
{
  if(fgets(text,50,stdin) != NULL) /* Read just 50 character */
  {
     // Do your stuff
   }
}

PS:fgets()附带换行符

答案 1 :(得分:0)

仍有错误。

for (x=1; x<=n; x++)

会在x==5时导致索引错误。 始终维护您的索引以适应语言。使用

for (x=0; x<n; x++)

为人类信息添加1

printf("Sentence %d: \n", x + 1);

正如@cmatsuoka所写,数组应该是

char text[5][51]={0};