Что делает функция get здесь, здесь хранится первая входная строка здесь в pt [1] вместо pt [0] и выходит из цикла после чтения строк p-1, если используется scanf, он считывает строки p, но печатает 1-я строка (pt [0]) как пустое пространство?необычное поведение строк
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
int c,i,j,p,k;
char d[100],pt[1000][1000];
scanf("%d",&c);
for(i=0;i<=c-1;i++)
{
scanf(" %c",&d[i]);
}
scanf("%d",&p);
for(i=0;i<=p-1;i++)
{
scanf(" %c",&d[i]);
}
scanf("%d",&p);
for(i=0;i<=p-1;i++)
{
gets(pt[i]);
}
/*the first string is stored in pt[1] instead of pt[0] and loop terminates after reading p-1 strings */
Не используйте 'gets', он устарел, потому что он небезопасен со стандарта C99 и полностью удаляется из стандарта C11. –
Избегайте объявления больших объемов данных локально, в стеке. Этот код имеет большой потенциал для переполнения стека. – Lundin