СИ зацикливается и не выводит нужный массив, хелп
Ситуация такая, есть задача
Есть код
#define _CRT_SECURE_NO_WARNINGS // Штука для удаления ошибки с scanf
#include <stdio.h> // Подключнение библиотеки для ввода вывода
#include <locale.h>// Подключение библиотеки для использования русского языка в выводе
#include <stdlib.h> // Для рандома
#include <malloc.h>
#include <math.h>
#include <time.h>
#include <windows.h>
char** WordSearch(char** array, int N, int M, char letter)
{
for (int i = 1; i < N; i=i+2)
{
for (int j = 0; j < M; j++)
{
if(array[i][j]==letter)
while (array[i][j] != ' ')
{
if ('а' <= array[i][j] && array[i][j] <= 'я')
{
array[i][j] = array[i][j] + 'А' - 'а';
j++;
}
}
}
}
for (int i = 0; i < N; i = i + 2)
{
for (int j = 0; j < M; j++)
{
if (array[i][j] == letter)
while (array[i][j] != ' ')
{
if ('а' <= array[i][j] && array[i][j] <= 'я')
{
array[i][j] = ' ';
//j++;
}
}
}
}
return array;
}
int main(void)
{
srand(time(NULL));
SetConsoleCP(1251);//Отображение русского языка в кансоли(вывод char)
SetConsoleOutputCP(1251);
setlocale(LC_ALL, "Rus");//Команда для включения русского языка в выводе
int flag = 0, GlobalCounter=0, maxcount = 0;// Выделение памяти под переменные
char letter;
char** A;
char** B;
int* count = new int[256];// Создаем массив под хранение длин сток
A = (char**)malloc(256 * sizeof(char*));//Создаём двумерный массив под хранение всех наших строк, заведомо максимального размера
for (int i = 0; i < 256; i++) // цикл по строкам
{
// Выделение памяти под хранение строк
A[i] = (char*)malloc(256 * sizeof(char));//Выделяем память под строки
}
B = (char**)malloc(256 * sizeof(char*));//Создаём двумерный массив под хранение всех наших строк, заведомо максимального размера
for (int i = 0; i < 256; i++) // цикл по строкам
{
// Выделение памяти под хранение строк
B[i] = (char*)malloc(256 * sizeof(char));//Выделяем память под строки
}
while (flag != 1)//Основной цикл ввода строк(текста)
{
char* A1 = new char[256];//Создаем массив для н-ой строки
printf("Введите строку\n");
int i = 0, counter=0;
while ( i < 256)//Заполняем строку значениями символов, которые вводит пользователь
{
scanf("%c", &A1[i]);
//printf("%d", getchar());
if (A1[i] == '\n')//Проверяем нажатие на пробел, если оно есть, то заполнение строки заканчивается
{
break;//Выходим из заполнения строки
}
i++;
counter++;//переменная для подсчёта количества символов в строке
}
count[GlobalCounter] = counter;//в массив, хранящий длины строк запихиваем длину очередной строки
// GlobalCounter - переменная для отслеживания количества введённых строк
if (maxcount < counter)
{
maxcount = counter; //Определяем максимальную длину строки для вывода в последствии
}
counter++;// Для цикла
for (int j = 0; j < counter; j++)
{
A[GlobalCounter][j] = A1[j];//Заполняем соответсвующую строку в двумерном массиве
}
GlobalCounter++;//переходи на новую строку
for (int i = 0; i < counter-3; i++)//Цикл по определению "Стопслова"
{
if (A1[i] == 'e')
{
if (A1[i + 1] == 'n')
{
if (A1[i + 2] == 'd')
{
flag = 1;//Если слово совпало, то Выходим из цикла заполнения строк
}
}
}
}
}
printf("===================Вы ввели текст===================\n");//Выводим введённый текс
for (int i = 0; i < GlobalCounter-1; i++)
{
for (int j = 0; j < count[i] ; j++)
{
printf("%c", A[i][j]);
}
printf("\n");
}
printf("====================================================\n");
printf("--------------------------------------------------------------------\n");
printf("Введите букву, слова на которую будут в чётных строках удалены\n");
printf("В нечётных строках заменены на слова написанные заглавными буквами\n");
printf("--------------------------------------------------------------------\n");
printf("--------------\n");
scanf("%c", &letter);
printf("--------------\n");
B = WordSearch(A, GlobalCounter, maxcount, letter);
printf("===================Мы модифицировали текс===================\n");//Выводим введённый текс
for (int i = 0; i < GlobalCounter - 1; i++)
{
for (int j = 0; j < count[i]; j++)
{
printf("%c", B[i][j]);
}
printf("\n");
}
printf("============================================================\n");
}
Код не арбайтен. Понятия не имею почему. Где-то ошибка, но, я похоже слишком слеп, чтобы её увидеть
