Q. Введите и сохраните n строк и затем найдите конкретную строку .
Я могу ввести «Количество строк», а затем я также могу ввести строки. Но тогда строки не будут напечатаны. Ни сравнение, ни поиск не происходят, и это показывает ошибку сегментации. Это происходит, когда я использую gets () для ввода строк. Но когда я использую scanf () для ввода строк, программа завершает работу сразу после ввода «Количество строк». Почему так?
Вот код:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
char str[200],names[100];
int n,i;
int flag=0;
printf("Give number of strings:\n");
scanf("%d",&n);
printf("Enter the strings:\n");
for(i=0;i<n;i++)
{
gets(names);
}
printf("Entered Values are:\n");
for(i=0;i<n;i++)
{
printf("%s\t",names[i]);
}
printf("Enter the string you want to search for:\n");
scanf("%s",str);
for(i=0;i<n;i++)
{
if(strcmp(names[i],str) == 0)
{
flag=1;
break;
}
}
if(flag==1)
printf("Yes this string %s exists!\n",str);
else
printf("No it does not exists");
return 0;
}