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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 16:49   #1
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию Работа со строками. Не разберуст как определить сколько раз 2-ая строка встречается в 1-ой.( Borland3.1C)

Код:

while (i<strlen(str1))
{
for (j=0; j<strlen(str2); j++)
if (str1[i+j]==str2[j]) n++;
else n = 0;
if (n==strlen(str2))
{
k++;
i+= strlen(str2)-1;
n = 0;
}
i++;
}
if (k==0) printf ("Stoka 2 ne vstrechaetcia v stroke 1");
else printf ("2 Stroka vstrechaetsya v 1 stroke %d raz(a).\n", k);


Программа работает, но если я ввожу вторую строку в которой повторяется больше 2-ух символов, программа выдает 0.
Первая строка: rdcrvghhhffghhh
Вторая строка: hhh

Последний раз редактировалось dykatob; 05.05.2011 в 16:54.
dykatob вне форума Ответить с цитированием
Старый 05.05.2011, 17:31   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

мне такое решение больше нравится
Код:
char str1[80]="qwrrrr rt rt er t errrr rterterrrrr eeeeeeeeeerr";
	char str2[]="rrr";

	int count=0;
	char *p = strstr(str1,str2);

	while (p) {
		count++;
		p+=strlen(str2);
		p = strstr(p,str2);
	}

	std::cout << count << '\n';
onewho вне форума Ответить с цитированием
Старый 05.05.2011, 19:59   #3
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию

Конечно, спасибо. Но я хочу разобраться как это будет в Borland C 3.1
А он не воспринимает count, cout, bool. =(
Жду предложений, как обойти данные приемы)
dykatob вне форума Ответить с цитированием
Старый 05.05.2011, 20:42   #4
ramainen
Новичок
Джуниор
 
Регистрация: 04.05.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от dykatob Посмотреть сообщение
Конечно, спасибо. Но я хочу разобраться как это будет в Borland C 3.1
А он не воспринимает count, cout, bool. =(
Жду предложений, как обойти данные приемы)
Код:
#include <stdio.h>

int main()
{
	char str1[80]="qwrrrr rt rt er t errrr rterterrrrr eeeeeeeeeerr";
	char str2[]="rrr";

	int count=0;
	char *p = strstr(str1,str2);

	while (p) {
		count++;
		p += strlen(str2);
		p = strstr(p,str2);
	}
	
	printf("Количество раз встречается 2-ая строка в 1-ой: %i\n", count);
	
	return 0;

}
Вот исправлено для С Перименовал одну строчку
ramainen вне форума Ответить с цитированием
Старый 05.05.2011, 21:39   #5
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию

спасибо ещё раз, но ты наверное не верно понял , строки вводятся с консоли
dykatob вне форума Ответить с цитированием
Старый 05.05.2011, 21:41   #6
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию

а где написана 1 и 2 строки это пример
dykatob вне форума Ответить с цитированием
Старый 05.05.2011, 21:44   #7
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию

Извини это я не понял
всё работает спасибо ещё раз
dykatob вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками. Не пойму как определить сколько раз одна строка встречается в другой dykatob Общие вопросы C/C++ 10 29.04.2011 22:46
Как подсчитать сколько раз встречается символ в строке? zver777 Общие вопросы Delphi 10 10.01.2010 00:57
PHP.Как посчитать, сколько раз слово встречается в файле? Princesse Помощь студентам 0 07.12.2009 00:24
Определить сколько раз встречается в тексте самое короткое слово - Delphi 7 Леди Уинтер Помощь студентам 3 08.01.2008 17:56
Сколько раз встречается данное слово n1k1c4 Помощь студентам 4 13.12.2007 20:33