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

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

Войти
Регистрация
Восстановить пароль
 
ExIM
2 / 2 / 0
Регистрация: 29.11.2012
Сообщений: 7
#1

Копирование текста начиная с одного слова до определенного участка - C++

13.04.2013, 08:14. Просмотров 759. Ответов 5
Метки нет (Все метки)

Как можно скопировать текст из текстовика, который находится, например, после "STR21=" до знака "&" ?
Желательно, чтоб это было зацикленно, т.к в тексте часто встречаются различные запросы типа "STR21=Автор книги&" или "STR21=Последний запрос&".

Добавлено через 15 минут
Вобщем, требуется написать программу, которая бы из текстогого файла примерно такого типа: S21P05=Ключевые слова&002S21STR=Бухгалтерский учет&002S21P04=&002S21L0G=0&S21STR=Экономика Томска&002S21L0G, копировала текст, который находится после S21STR= до символа &, и находила бы количество вхождений запросов, примерно так:

Бухгалтерский учет - 25
Бухгалтерский журнал - 30
Экономика Томска - 6
Экономика Якутии - 1

И записывала бы эти данные в другой файл.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 08:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Копирование текста начиная с одного слова до определенного участка (C++):

Найти сумму элементов участка массива начиная с первого положительного и кончая вторым положительным элементом - C++
Дан одномерный массив из 1000 элементов, состоящий из случайных целых чисел в диапазоне от -5 до 8. Найти сумму элементов участка массива,...

Считать из файла от определенного символа(слова) до определенного символа(слова) - C++
Считываем текст из файла. Допустим от слова "Qwerty" до слова "Uiop". Примерно догадываюсь как это реализовать FILE *f; char s;...

tbb parallel_for чтение одного участка памяти разными потоками - C++
Добрый день. Предположим, нужно распараллелить свертку одного и того же изображения разными фильтрами (использую tbb:: parallel_for)- в...

Цвет текста для конкретного участка - C++
Как задать цвет текста в консоли только для конкретного участка или строки? Знаю, что - system("color 2"); или system("color FH"); меняют...

Копирование из одной строки в другую n символов, начиная с символа номер s - C++
Друзья, не могу до конца правильно решить такую задачу: Pstring s1 = "Hello World"; Pstring s2; s2.Middle(s1, 6, 3); s2.Show(); //...

Копирование строки до определенного символа - C++
Дан текстовый файл с командами типа INSERT("Ключ", Значение) \ FIND ("Ключ") \ REMOVE ("ключ") Собственно, нужно достать Ключ и значение,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6358 / 5922 / 1920
Регистрация: 18.12.2011
Сообщений: 15,220
Завершенные тесты: 1
13.04.2013, 08:26 #2
C++
1
2
3
4
5
6
char text[]="S21P05=Ключевые слова&002S21STR=Бухгалтерский учет&002S21P04=&002S21L0G=0&S21STR=Экономика Томска&002S21L0G";
char p1=strstr(text,"STR21=");// р1 укажет на первое вхождение строки "STR21="
char p2=strstr(text,"&");// р2 укажет на первое вхождение строки "&"
// далее в цикле
p1=strstr(p1+6,"STR21=");// р1 укажет на следующее вхождение строки "STR21=" или NULL если нету
p2=strstr(p2+1,"&");// р2 укажет на следующее вхождение строки "&"
ExIM
2 / 2 / 0
Регистрация: 29.11.2012
Сообщений: 7
13.04.2013, 14:14  [ТС] #3
Цитата Сообщение от zss Посмотреть сообщение
C++
1
2
3
4
5
6
char text[]="S21P05=Ключевые слова&002S21STR=Бухгалтерский учет&002S21P04=&002S21L0G=0&S21STR=Экономика Томска&002S21L0G";
char p1=strstr(text,"STR21=");// р1 укажет на первое вхождение строки "STR21="
char p2=strstr(text,"&");// р2 укажет на первое вхождение строки "&"
// далее в цикле
p1=strstr(p1+6,"STR21=");// р1 укажет на следующее вхождение строки "STR21=" или NULL если нету
p2=strstr(p2+1,"&");// р2 укажет на следующее вхождение строки "&"
Спасибо!
Но, не могли бы вы еще подсказать, как каждый новый запрос S21STR=*текст запроса*, записать в массив, и вывести на экран количество его повторений в тексте?
zss
Модератор
Эксперт С++
6358 / 5922 / 1920
Регистрация: 18.12.2011
Сообщений: 15,220
Завершенные тесты: 1
13.04.2013, 19:27 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char massiv[MAXSTR][100];
int count=0;
char p1=strstr(text,"STR21=");// р1 укажет на первое вхождение строки "STR21="
char p2=strstr(text,"&");// р2 укажет на первое вхождение строки "&"
while(p1&&p2)
{
    int L=(int)(p2-p1);
    for(int i=0;i<L;i++)
        massiv[count][i]=p1[i];
    massiv[count][L]=0;
    p1=strstr(p1+6,"STR21=");// р1 укажет на следующее вхождение строки "STR21=" или NULL если нету
    p2=strstr(p2+1,"&");//   
}
karaush
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 3
16.04.2013, 14:49 #5
Уважаемый студент первого курса, кафедры РЗИ! На ближайшем занятии любой алгоритм используемый в лабораторной работе, даже частично совпадающий с приведенными в данной теме, будет не засчитана, и Вам будет выдана лабораторная работа по новой теме! Желаю вам удачи! А. С. Карауш
ExIM
2 / 2 / 0
Регистрация: 29.11.2012
Сообщений: 7
16.04.2013, 22:27  [ТС] #6
Цитата Сообщение от karaush Посмотреть сообщение
Уважаемый студент первого курса, кафедры РЗИ! На ближайшем занятии любой алгоритм используемый в лабораторной работе, даже частично совпадающий с приведенными в данной теме, будет не засчитана, и Вам будет выдана лабораторная работа по новой теме! Желаю вам удачи! А. С. Карауш
It's my fault.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2013, 22:27
Привет! Вот еще темы с ответами:

Напечатать слова, которые отличны от последнего слова текста, предварительно удалив из слова последнюю букву - C++
Дана последовательность содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними словами не менее...

Как скопировать подстроку из строки до определенного символа? Или удалить, начиная с этого символа - C++
Добрый вечер. Ответ искал, но не нашёл. Предположим, есть строка: ABC|DEF Надо скопировать всё до | , т.е., в приведённом...

Скопировать из одного символьного массива в другой, начиная с определенной позиции - C++
Добрый вечер. Столкнулся с проблемой: Имеется: char buffer = &quot;We are the champions&quot;; char word = &quot; &quot;; Мне надо скопировать в word ...

Выделить из строки s l слов, начиная со слова с номером n - C++
Необходимо создать функцию для обработки символьных строк, используя традиционную обработку массивов и используя адресную арифметику. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.04.2013, 22:27
Ответ Создать тему
Опции темы

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