Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2008, 16:36   #1
Лидия
Новичок
Джуниор
 
Аватар для Лидия
 
Регистрация: 25.05.2008
Сообщений: 1
Вопрос Просьба отладить программу!! на языке СИ

Задание: Функция находит в заданной строке подстроку и возвращает динамический массив указателей на все вхождения этой подстроки.
Это задание основывается на динамическую память!!!!
У меня в этой программе после вывода сообщения:"Вхождение данной подстроки", программа завершает работу((((
помогите разобраться,что с ней не так и в чем проблема!!!!
ЗАРАНЕЕ БЛАГАДАРЮ!!!!!


Код:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>

char **change(char *str1, char *str2);
void main()
{

	 clrscr();
	 char str1[256];
	 char str2[256];
	 char mas1[99];

	printf("Введите основную строку \n");
	gets(str1);
	printf("Введите подстроку\n");
	gets(str2);

	 printf("Вхождение данной подстроки\n");
	 char **res = change(str1, str2);
	 for(int i = 0 ;i < 10 ; i++)
	{
	 if(res[i]!=NULL) printf("%s\n", res[i]);
	}
	 getch();
}
char **change(char *str1, char *str2)
{
	 char **ss=(char **) malloc (10*sizeof(char*));
	 for(int f=0; f<10; f++)
	 {
	 ss[f]=0;
	 }

	 int mas=0;
	 int poz=0;            // позиция указателя в подстроке
	 int flag=0;
	 int n=0;             // число совпавших символов
	 int dir;
	 int j;

 for(int i=0; i<=strlen(str1)-strlen(str2); i++) //отмечаем начало проверяемого
 {                                               //отрезка

   flag=0;
   //--Цикл посимвольной проверки на совпадение первой и 2-ой строки--
   for(j=i, poz=0; j<i+strlen(str2) && flag==0; j++, poz++)
	{
	 if(str1[j]==str2[poz])
	 {
		n++; 	   // Увеличиваем число совпавших символов
		if(n==strlen(str2))        // Если равно подстроке-запоминаем положение
		 {
		 ss[mas] = &str1[i];
		 mas++;
		 n=0;
		 }
		 else
		{
		 flag=1;
		  n=0;
		}
	 }

   }
   return ss;
}
}
moderator: Используйте тег <CODE>

Последний раз редактировалось Лидия; 26.05.2008 в 00:31.
Лидия вне форума Ответить с цитированием
Старый 25.05.2008, 17:57   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию Мда...

Так-с... очередной непонимающий...
Значит так, девушка
Первое: Сформулируйте задачу правильно.
Второе: Объясните, что делает данная программа.
Третье: Правильно формите пост. Если не знаете как правильно оформлять посты, то читайте это. Там есть все.
MaTBeu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
надо отладить программу Daddic Помощь студентам 3 20.04.2008 18:24
Программа на русском языке в Windows XP на другом языке... Как? 29bit Свободное общение 4 01.02.2008 17:24
как можно отладить программу????? Николай969 Помощь студентам 2 13.01.2008 19:33
Просьба оценить программу хранения паролей Genek Софт 6 26.12.2007 13:35
Помогите написать программу...На языке паскаль sher_man Помощь студентам 2 21.11.2007 14:10