Форум программистов, компьютерный форум CyberForum.ru

Найти все вхождения строки s в t - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать файл целых чисел http://www.cyberforum.ru/cpp-beginners/thread31171.html
составить програму,которая формирует файлцелых чисел,получаемых с помощу датчика случайных чисел
C++ Структура сведения о каждом химическом елементе таблицы Менделеева представить виде структуры.написать прорму ввода таблицы в память компютера. http://www.cyberforum.ru/cpp-beginners/thread31170.html
Program received signal SIGSEGV, Segmentation fault C++
Когда запускаю дебагер: gdb ./preci Вюдает следуще. Я не могу понять с чем это могет быть связано. Код: GNU gdb 6.4.90-debian Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions.
C++ Тестирующие сайты..
Кто решает задачи на этих тестирующих сайтах, отзовитесь и помогите решить некоторые задачи:, www.********, www.acmu.ru
C++ Комбинаторика... http://www.cyberforum.ru/cpp-beginners/thread31033.html
Обмен валюты (Время: 1 сек. Память: 16 Мб Сложность: 70%) Петя работает в обменном пункте во Флатландии. Недавно Петя получил от начальства набор цифр для отображения обменного курса. К сожалению, набор содержит всего по две копии каждой цифры. Теперь Петя хочет узнать, сколько различных обменных курсов он сможет отобразить. Петя обменивает флатландские доллары на крайландские тугрики. Петя...
C++ Использование файлов и строк Уважаемые программисты! Нужна ваша помощь, заканчиваю написание диплома и возникла следующая проблемка: Есть программа, которая все результаты записывает в файл txt. Этот файл имеет следующий вид: time 0.000 0.000 0.250 0.000 0.000 0.000 0.000 ... time 0.050 0.000 0.250 0.000 0.000 0.000 0.000 ... time 0.100 0.000 0.250 0.000 0.000 0.000 0.000 ... ... подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17295 / 5543 / 347
Регистрация: 30.03.2009
Сообщений: 15,086
Записей в блоге: 26
25.04.2009, 19:06     Найти все вхождения строки s в t
Я тебе уже писал про своё отношение к выкладыванию готовых кодов. Выкладываю по одной причине - я тебе обещал посмотреть твою программу, но мне всё-таки лениво в ней копаться. Но, как говорится, назвался груздем... Это я всё к тому, чтобы ты меня не тиранил по поводу остальной кучи своих тем

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <string.h>
 
/* Проверяет наличие в строке ss подстроки tt
 * Если есть, возвращаем 1, иначе 0 */
int
str_in_str (char *ss, char *tt)
{
  int i;
 
  for (i = 0; i < strlen (tt); i++)
    if (ss[i] != tt[i])
      return 0;
 
  return 1;
}
 
void
find_indexes (char *s, char *t)
{
  int i;
 
  for (i = 0; i < (strlen (s) - strlen (t)); i++)
    if (str_in_str (s + i, t))
      printf ("%d\n", i);
}
 
int
main (void)
{
  char *s = "abbababababa";
  char *t = "aba";
 
  find_indexes (s, t);
 
  return 0;
}
Добавлено через 1 минуту 56 секунд
Единственное, что перед вызовом find_indexes нужно вставить контроль, что длина строки t должна быть меньше длины строки s. В противном случае программа работать не будет (это противоречит условиям задачи)
 
Текущее время: 15:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru