Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Danvern
41 / 40 / 5
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1

работа с файлом

24.08.2010, 20:32. Показов 802. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как найти определённое слово в массиве? такого вида
[2010-08-24 22:19:08] 217.118.79.33 dan HTTP GET http://google.com/
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.08.2010, 20:32
Ответы с готовыми решениями:

GUI Работа с текстовым файлом, лог файлом не мешая системе
Хочу написать прогу которая будет по таймеру искать в тхт - лог файле сообщение об ошибке. Например Error: 100 Qt C++ gui изучаю недавно...

Работа с файлом (корректный код, некорректная работа программы)
Для записи и чтения файла использую разные функции. По одиночке они работают нормально. Вставляю их прототипы в функцию main() и нижняя...

Работа с файлом
Здравствуйте, у меня есть List<News> News (список новостей, у новостей есть свойства: Id, Message). Моя задача при вызове метода News.Add...

7
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.08.2010, 20:51
это массив? или это то, что нужно найти?
0
 Аватар для Danvern
41 / 40 / 5
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
24.08.2010, 21:11  [ТС]
Цитата Сообщение от Danvern Посмотреть сообщение
[2010-08-24 22:19:08] 217.118.79.33 dan HTTP GET http://google.com/
это массив.
google- вот это слово нужно в нём найти.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
24.08.2010, 21:14
Danvern, Разбиваем строку... Разделители допустим " ./"... Проверяем каждое слово на совпадение... Если совпало одно что-то делаем, если не совпало продолжаем искать..
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.08.2010, 21:14
т.е. имя домена?
урлы могут быть разными?
0
 Аватар для Danvern
41 / 40 / 5
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
24.08.2010, 21:21  [ТС]
ну да.
помогите хотя бы вот это выцепить http://google.com/
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
24.08.2010, 21:27
Danvern,
Выцепляет google
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>
#include <string>
 
int main()
{
   std::string Str="[2010-08-24 22:19:08] 217.118.79.33 dan HTTP GET http://google.com/";
   std::string Delim=" ./";
   for(std::string::iterator It=Str.begin(); It!=Str.end(); ++It)
   {
      if(Delim.find(*It)!=std::string::npos)
         *It=' ';
   }
   std::istringstream buf(Str);
   std::string string;
   std::string CompStr="google";
   while(buf)
   {
      buf>>string;
      if(string==CompStr)
         std::cout<<string<<'\n';
   }
   return 0;
}
Цепляет http://google.com/
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
#include <iostream>
#include <sstream>
#include <string>
 
int main()
{
   std::string Str="[2010-08-24 22:19:08] 217.118.79.33 dan HTTP GET http://google.com/";
   std::string Delim=" ";
   for(std::string::iterator It=Str.begin(); It!=Str.end(); ++It)
   {
      if(Delim.find(*It)!=std::string::npos)
         *It=' ';
   }
   std::istringstream buf(Str);
   std::string string;
   std::string CompStr="http://google.com/";
   while(buf)
   {
      buf>>string;
      if(string==CompStr)
      {
         std::cout<<string<<'\n';
         break;
      }
   }
   return 0;
}
2
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
25.08.2010, 00:09
Danvern, поправьте, если ошибаюсь: нужно читать строки из лог-файла, выдёргивать из них последнюю часть (содержащую запрошенный хост) и сохранять куда-то найденное? Или всё-таки google искать?
Если нужно проверить, содержит ли строка google.com, так это просто
C
1
2
3
4
...
char buf[BUFSIZ];
...
printf("%s\n", strstr(buf, "google.com") ? "yes" : "no");
C++
1
2
3
4
...
std::string buf;
...
std::cout << ( buf.find("google.com") == std::string::npos ? "niht" : "ya-ya") << std::endl;
Если же всё-таки нужна последняя часть из строки, то вот, правда, на С
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 <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char * last_word(const char * str){
    char * p;
    
    if ( ( p = strrchr(str, ' ') ) == NULL ){
        fprintf(stderr, "Wrong string!\n");
        return NULL;
    }
    return ++p;
}
 
int main(void){
    char *rows[] = {
        "[2010-08-24 22:19:08] 217.118.79.33 dan HTTP GET http://google.com/",
        "[2010-08-24 22:19:08] 217.118.79.33 dan HTTP GET http://shmoogle.com/",
        "[2010-08-24 22:19:08] 217.118.79.33 dan HTTP GET http://yandex.ru/",
        NULL
    };
    char ** hosts, ** row, * host;
    size_t count, i;
    
    hosts = NULL;
    count = 0;
    
    for ( row = rows; *row; ++row ){
        if ( ( host = last_word(*row) ) == NULL ){
            fprintf(stderr, "Error while parsing row #%d\n", count + 1);
            exit(EXIT_FAILURE);
        }
        if ( ( hosts = (char**)realloc(hosts, sizeof(char*) * (count + 1)) ) == NULL ){
            fprintf(stderr, "Memory error!\n");
            exit(EXIT_FAILURE);
        }
        if ( ( hosts[count++] = strdup(host) ) == NULL ){
            fprintf(stderr, "Memory error!\n");
            exit(EXIT_FAILURE);
        }
    }
    
    printf("%d hosts found:\n", count);
    for ( i = 0; i < count; ++i )
        printf("%s\n", hosts[i]);
    
    for ( i = 0; i < count; ++i )
        free(hosts[i]);
    free(hosts);
    exit(EXIT_SUCCESS);
}
Откуда-нибудь из середины строки вынуть часть было бы сложнее, но не на много...
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.08.2010, 00:09
Помогаю со студенческими работами здесь

Работа с файлом
Как запретить удаление и изменение выходного файла(текстового)? т.е. (Когда введен пароль админа на форме, тогда к файлу можно получить...

Работа с файлом
вот смотрите есть файл chisla.txt В нем содержатся цифры ( Например 101 258 164) Как мне изъять из файла ТОЛЬКО 1 число (например 101)???

Работа с файлом
char *FileName =&quot;123.txt&quot;; int h=fileno(fopen(FileName,&quot;r+&quot;)); FileName=&quot;\0&quot;; Как мне теперь используя только h работать с файлом?...

Работа с файлом
Как можно копировать/переместить файл в указанную папку (если ее нет, то создать), а потом запустить файл?

работа с файлом)
Помогите пжлст написать прогу.Задание: Найти среднее количество знаков препинания в абзаце.Текст считывать с файла. Добавлено через...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru