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

Вхождение подстроки в строку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Анализ задачи http://www.cyberforum.ru/cpp-beginners/thread1047786.html
Помогите сделать анализ задачи, пожалуйста: Для выполнения арифметических операций над большими числами последние можно представить в виде массивов, где каждая цифра числа хранится в отдельном элементе - при таком подходе операции будут выполняться над отдельными элементами массива. ->Используя технологию структурного программирования, методику нисходящего программирования ("сверху-вниз"),...
C++ Сумма ряда В общем нужно написать два кода по этим функциям: 2/1 + 2/2 + 2/3 + 2/4+...и 2/1 + 2/2 - 2/3 + 2/4-... Код к первой я написал а вот со второй затрудняюсь так как чередуются сложение и вычитание :wall: Вот код к первой: #include "stdafx.h" #include <iostream> using namespace std; int main() { http://www.cyberforum.ru/cpp-beginners/thread1047785.html
C++ Windiws vs Linux
Я учусь программировать на с++. И использую для этого вижуал студио, НО мне сказали, что для дальнейшего она(вижуал студио) непригодна и посоветовали перейти на линукс. Вот задался вопросом в чом разница, разве нельзя нормально под винду прогать?
C++ Найдите ошибку пожалуйста
Дана функция f(x) = x3 – 3*sin(x), необходимо определить минимум данной функции на отрезке методом дихотомии. При запуске вылетает сообщение "Не удаётся найти программу С\...........\дебаг\321 не удаётся найти указанный файл #include <iostream> #include <math.h> using namespace std; double func(double x) { return pow(x, 3) - 3*sin(x); } int main() {
C++ Написать программу,вычисляющую первые n http://www.cyberforum.ru/cpp-beginners/thread1047779.html
Написать программу, вычисляющую первые n элементов заданной последовательности: b1=-1,b2=1,bn=3bn-1-2bn-2
C++ Задача через сколько минут будет 90 градсов Задали программу: Задано время в часа и минутах. Определить через сколько минут часовая и минутная стрелки будут образовывать угол в 90 градусов (Часовая стрелка перемещается дискретно, т. е. по часу) . Не могу подобрать формулу, которая расчитывала бы все случаи. Есть предложения?// лаба 2ц.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream>... подробнее

Показать сообщение отдельно
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
19.12.2013, 01:28     Вхождение подстроки в строку
хз. может быть дело в кодировке. вот если читать бинарно файлы, у меня выходит:

str size = 5779
templ size = 2
templates count = 14

регистр при поиске учитывается. т.е. Эт искать не будет. только эт


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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <string>
#include <fstream>
#include <iterator>
 
std::size_t GetTemplatesCountInString(std::string str, const std::string& templ)
{
  if (str.empty() || templ.empty())
  {
    return 0;
  }
 
  std::size_t count = 0;
  std::string::size_type offset = 0;
  while (true)
  {
    const std::string::size_type templPos = str.find(templ, offset);
    if (templPos == std::string::npos)
    {
      break;
    }
 
    ++count;
 
    offset = templPos + templ.size();
    if (offset > str.size())
    {
      break;
    }
  }
 
  return count;
}
 
std::string ReadDataFromFile(const std::string& filePath)
{
  std::ifstream file;
  file.exceptions(std::ios::badbit | std::ios::failbit);
  file.open(filePath, std::ios::in | std::ios::binary);
  return std::string((std::istreambuf_iterator<char>( file ) ), std::istreambuf_iterator<char>());
}
 
int main()
{
  const std::string str = ReadDataFromFile("d:\\tmp\\Kniga1.txt");
  const std::string templ = ReadDataFromFile("d:\\tmp\\Podstroka.txt");
  std::cout << "str size = " << str.size() << std::endl;
  std::cout << "templ size = " << templ.size() << std::endl;
  std::cout << "templates count = " << GetTemplatesCountInString(str, templ) << std::endl;
  return 0;
}
Добавлено через 4 минуты
для учета регистра начинается совсем другая история. там конвертить в юникод нужно или с локалями колдовать. в общем не английским тестом придется помучится. оставляю это вам
 
Текущее время: 04:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru