С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 4
1

Поиск подстрок в строках и вывод в файл

16.01.2016, 10:43. Показов 3378. Ответов 8

Author24 — интернет-сервис помощи студентам
Дан файл, html код страницы, в котором есть повторения типа "email: password", например:

lal@mail.ru:
TXGgQ32Bh8J7PQn6J

Конкретно в файле это будет выглядеть так
lal@mail.ru:<br>TXGgQ32Bh8J7PQn6J<br>

Маил с двоеточием и <br> строго равен 14 символов, пароль строго 17 символов.

Нужно найти среди html кода эти фрагменты (пароль нам не известен, то есть ищем маил и вставляем следующие символы) и вставить в исходный файл каждый password в новую строку

Вот что надумал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#define N 80
 main () { 
setlocale(LC_ALL, "rus"); 
    FILE *file;
    char arr[N];
    file = fopen("25.txt", "r");
    while (fgets (arr, N, file) != NULL)
{   //здесь программа должна находить и смещаться в начало найденного фрагмента, но не вдуплю как... 
    printf("%.17s\n",  arr+15); }
fclose(file);
system("pause");     
}
Нужно реализовать смещение на найденные фрагменты среди всего файла и вывести в другой тхт... Хэлп пожалуйста!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2016, 10:43
Ответы с готовыми решениями:

Поиск одинаковых подстрок в строках
Имеется 2 урла, нужно получить одинаковые их части. Подскажите, желательно какую-нибудь стандартную...

Поиск и вывод подстрок
злорадствуйте подскажите пожалуйста немного запутался как вывести через find все подстроки строки...

Поиск строки в файле и вывод значения в textBox одной из ее подстрок
Здравствуйте. Могли бы вы мне помочь с такой задачей: Есть файл .ini, в котором записаны...

Замена всех подстрок в строках
Подскажите , пожалуйста, как решить реальную задачу: С сервера на терминал передается несколько...

8
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
16.01.2016, 10:47 2
http://ru.cppreference.com/w/c... tring/find
http://www.codenet.ru/progr/cpp/sprd/strstr.php
Поиск подстроки в строке
собственно, могу еще долго сюда копировать гугл, сам попробуй, используя клавиатуру введи вопрос в поисковую строку и нажми Enter
1
0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 4
16.01.2016, 12:45  [ТС] 3
Извините за мою тупость, но
теперь проблема другая) как задать чтобы выводилась не вся найденная стока, а только её часть (password)
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
#include <iostream>
#include <string>
#define N 80
void print(std::string::size_type n, std::string const &s)
{
    if (n == std::string::npos) {
        std::cout << "";
    } else {
        std::cout << "" << s.substr(n) << '\n';
    }
}
 
 int main () { 
setlocale(LC_ALL, "rus"); 
    FILE *file;
    char arr[N];
    file = fopen("24.txt", "r");
    while (fgets (arr, N, file) != NULL)
{
    
    
  std::string::size_type n;
  std::string const s = arr;
  n = s.find("lal@mail.ru:<br>");
  print(n, s);
     }
fclose(file);
system("pause");     
}
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
16.01.2016, 13:40 4
Цитата Сообщение от Gramilys Посмотреть сообщение
как задать чтобы выводилась не вся найденная стока, а только её часть (password)
если это строка с паролем <br>TXGgQ32Bh8J7PQn6J<br> то возьми подстроку между тегами.
0
0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 4
17.01.2016, 08:13  [ТС] 5
как?
0
Любитель чаепитий
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
17.01.2016, 09:51 6
Gramilys,
C++
1
substr()
Добавлено через 2 минуты
C++
1
2
3
string str = s;
str[0] = ' ';
str.substr(str.find('>'),str.find('<')-1);
Я бы как-то так сделал.
0
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
17.01.2016, 10:07 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 
    string str("lal@mail.ru:<br>TXGgQ32Bh8J7PQn6J<br>");
    string::size_type ind_begin = str.find("<br>");
    if (ind_begin != string::npos)
    {
        string::size_type ind_end;
        ind_end = str.find("<br>", ind_begin + 4);
        if (ind_end != string::npos)
        {
            string password(str.substr(ind_begin + 4, ind_end - (ind_begin + 4)));
            cout << password << endl;
        }
    }
0
Любитель чаепитий
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
17.01.2016, 10:16 8
C++
1
2
3
string str = s;
str[str.find('<')] = ' ';
str.substr(str.find('>'),str.find('<')-1);
Вот так точнее.
0
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
17.01.2016, 10:33 9
Вот так ещё точнее:
C++
1
2
3
string str = s;
str[str.find('<')] = ' ';
str.substr(str.find('>') + 1, str.find('<') - (str.find('>') + 1));
1
17.01.2016, 10:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.01.2016, 10:33
Помогаю со студенческими работами здесь

Поиск подстрок
Кто нибудь пользовался алгоритмами приближенного поиска подстрок?? Расскажите

Поиск подстрок
например количество подстрок &quot;ddvvrwwwrggg&quot; равно 3 составить программу для нахождения количества...

Поиск подстрок
Задание подсчитать все подстроки с использованием функции strstr(). Делаю так: int...

Поиск подстрок в Dictionary
Здравствуйте, как реализовать поиск подстрок в значениях Dictinary(int, string) так чтобы...

Вывод подстрок
Задание: Дана строка не более чем из шести произвольных раз¬личных символов. Разработать программу...

Поиск и замена подстрок в строке
&quot;Поиск в строке всех вхождений подстрок и их(всех повторений подстроки) на другую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru