Помогите, пожалуйста разобраться: Компилятор ошибок не выдаёт, но при запуске программа выбрасывает.
В чём ошибка?
Код:
//С помощью текстового редактора БЛОКНОТ создать файл, содержащий текст, длина которого не превышает 700 символов (длина строки текста не должна превышать 70 символов).
//Файл должен иметь расширение DAT.
//Написать программу, которая:
//? выводит текст на экран дисплея;
//? выводит текст на экран дисплея еще раз, заменяя в заданном слове строчные буквы на прописные (заданное слово вводится с клавиатуры).
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <memory.h>
#include <locale.h>
#include <conio.h>
#include <ctype.h>
int main(void)
{
FILE *fl = NULL;
char fln[250] = {0};
char t[250] = {0};char fln1[250] = {0};
char srchstr[250] = {0};
char *p=srchstr;
char strbuff[1000][250] ={0, 0};
int rowN = 0;
system("cls"); //исполнение команд оболочки операционной системы
setlocale(LC_ALL, "Russian"); //привязка к региональному и языковому стандарту
fflush(stdin);
_flushall();
printf_s("Введите имя файла для открытия: "); //вывод форматированного входного
//потока в стандартный поток вывода
gets_s(fln, 249); //получение строки из стандартного потока ввода
if(fopen_s(&fl, fln, "rt")!=0 ) //открытие файла
{ printf_s("Ошибка. Файл не был открыт\n");
printf_s("Нажмите любую клавишу для выхода из программы");
_getch(); //получение одного символа с консоли без его отображения
}
else
printf_s("Файл открыт.\n");
while(!feof(fl))
{
fgets(&strbuff[rowN][0], 249, fl); //получение строки из потока
rowN++;
}
_fcloseall(); //закрытие всех открытых потоков
printf_s("\n------------------------ИСХОДНЫЙ ТЕКСТ------------------------\n");
for(int d=0; d<=rowN; d++)
printf_s("%s", strbuff[d]);
printf("\n--------------------КОНЕЦ ИСХОДНОГО ТЕКСТА--------------------\n");
printf_s("Введите искомое слово: ");
gets_s(srchstr, sizeof(srchstr));
for(int d = 0; d <= rowN; d++)
{ char *pos = NULL;
int i;
int a=strlen(strbuff[d]);
int b=strlen(pos);
int c=strlen(srchstr);
pos = strstr(t, srchstr); //получение указателя на первое совпадение
//искомой строки в целевой строке
int l=a-b;
int k=a-b+c;
strcpy(t,strbuff[d]);
if(pos!= NULL)
{for (i=l;i<=k;i++)
{
if (t[i]=='a') t[i]='A';
if (t[i]=='b') t[i]='B';
if (t[i]=='c') t[i]='C';
if (t[i]=='d') t[i]='D';
if (t[i]=='e') t[i]='E';
if (t[i]=='f') t[i]='F';
if (t[i]=='g') t[i]='G';
if (t[i]=='h') t[i]='H';
if (t[i]=='i') t[i]='I';
if (t[i]=='j') t[i]='G';
if (t[i]=='k') t[i]='K';
if (t[i]=='l') t[i]='L';
if (t[i]=='m') t[i]='M';
if (t[i]=='n') t[i]='N';
if (t[i]=='o') t[i]='O';
if (t[i]=='p') t[i]='P';
if (t[i]=='q') t[i]='Q';
if (t[i]=='r') t[i]='R';
if (t[i]=='s') t[i]='S';
if (t[i]=='t') t[i]='T';
if (t[i]=='u') t[i]='U';
if (t[i]=='v') t[i]='V';
if (t[i]=='w') t[i]='W';
if (t[i]=='x') t[i]='X';
if (t[i]=='y') t[i]='Y';
if (t[i]=='z') t[i]='Z';
}
printf("%s",t);
}
else printf_s("%s", strbuff[d]);
}
memset(srchstr, 0, sizeof(srchstr)); //присваивает буферу определенное значение
printf_s("Нажмите любую клавишу для выхода из программы ...");
_getch();
return 0;}