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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dima77790
1 / 1 / 0
Регистрация: 06.10.2013
Сообщений: 12
#1

Извлечение нужной информации из строки - C++

09.04.2014, 00:34. Просмотров 354. Ответов 6
Метки нет (Все метки)

Есть стока следующего вида:
\\\\?\\usbstor#disk&ven_ufd_2.0&prod_silicon-power16g&rev_pmap#12021051046e6c21d00cf3b0461&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
информация которую нужно вытащить выделена красным цветом.
длинна нужной информации меняется, остальные символы в строке присутствую постоянно.

Помогите извлечь инфу в отдельные строковые переменные.
(очень не хочется писать процедуру в которой все будет разбираться посимвольно )
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 00:34     Извлечение нужной информации из строки
Посмотрите здесь:

Вывод нужной информации по параметрам - C++
Добрый всем день, представим что у нас есть небольшая электронная библиотека в которую занесено например 4 книги, у каждой книги есть свои...

Извлечение информации из BMP файла - C++
Есть вот такое вот задание: 1. Разработать программу, результатом которой будет следующая информация о свойствах графического файла...

Структуры данных "Книги", вывод нужной информации - C++
Всем привет. Есть проблемка-надо написать структуру данных про книги в библиотеке - год издан, автор и т.п С этим проблем нет...Проблема...

Поиск по файлу и вывод нужной строки - C++
Программа. Распечатать все строки данного файла, содержащие заданную строку. Имя файла и строка задаются в командной строке. Помогите...

Взять все числа с нужной строки - C++
Есть файл txt. На первой строке N и M через пробел (N - кол-во строк ещё) всего строк N+1. В остальных строках только числа через...

Поиск нужной строки во внешнем файле ( блокнот ) - C++
Уважаемые форумчане, подскажите пожалуйста как осуществить поиск строчки в текстовом файле (блокнот). Суть: Задается два параметра...

Как эффективнее всего реализовать считывание нужной строки? - C++
Всем привет! Нужно считать определенную строку в файле, допустим 5-ую. Как эффективнее всего это реализовать?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MegaCoder
6 / 2 / 1
Регистрация: 10.03.2014
Сообщений: 17
09.04.2014, 00:39     Извлечение нужной информации из строки #2
загугли "regex", "регулярные выражения"
IrineK
Заблокирован
09.04.2014, 00:51     Извлечение нужной информации из строки #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Здесь выпиливаем то, что не нужно:

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
#include <iostream>
#include <sstream>
using std::cin;
using std::cout;
using std::string;
 
 
int main()
{   string s = "\\\\?\\usbstor#disk&ven_ufd_2.0&prod_silicon-power16g&rev_pmap#12021051046e6c21d00cf3b0461&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}";
    string everywhere[] = {"\\\\?\\usbstor#disk&ven_", "&prod_", "g&rev_pmap#", "&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}"};
    
    int N = 4, i = -1, found;
 
    while (++i < N)
    {   found = s.find (everywhere[i]);
        s.erase (found, everywhere[i].length());
        s.insert (found, 1, ' ');
    }
 
    cout << s;
    
    cin.sync(); cin.get();
    return 0;
}
В отдельные строковые переменные - можно и самому ).
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.04.2014, 02:45     Извлечение нужной информации из строки #4
Нужно добавить, что делать, если не найдено нужное:
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
#include <iostream>
#include <string>
#include <vector>
 
int main()
{   
    std::string s = "\\\\?\\usbstor#disk&ven_ufd_2.0&prod_silicon-power16g&rev_pmap#12021051046e6c21d00cf3b0461&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}";
    std::string find[] = {"\\\\?\\usbstor#disk&ven_", "&prod_", "g&rev_pmap#", "&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}"};
    
    
    std::vector <std::string> v;
    int i = 0;
    while (i < 3)
    {   
        std::string temp;
        int ind = s.find (find[i]);
        if (ind != -1)
        {
            int end = s.find (find[i + 1]);
            if (end != - 1)
            {
                int begin = ind + find[i].length();
                int size = end - begin;
                v.push_back(std::string(s, begin, size));
            }
        }
        ++i;
    }
 
    std::cin.get();
    return 0;
}
IrineK
Заблокирован
09.04.2014, 12:56     Извлечение нужной информации из строки #5
Цитата Сообщение от alsav22 Посмотреть сообщение
что делать, если не найдено нужное
И что же делать? Искать? Выводить инфу?

И что есть "нужное" - кво (3) или определенный контент?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.04.2014, 21:23     Извлечение нужной информации из строки #6
Цитата Сообщение от IrineK Посмотреть сообщение
И что же делать? Искать? Выводить инфу?
И что есть "нужное" - кво (3) или определенный контент?
Вопросы к ТС (?).
IrineK
09.04.2014, 23:04     Извлечение нужной информации из строки
  #7

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Вопросы к ТС (?).
Пожалуй.
Скорее, мысли вслух.

Yandex
Объявления
09.04.2014, 23:04     Извлечение нужной информации из строки
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru