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

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

Войти
Регистрация
Восстановить пароль
 
Romadzao
7 / 7 / 1
Регистрация: 02.07.2012
Сообщений: 120
#1

Выбор слова из массива - C++

04.07.2012, 18:09. Просмотров 421. Ответов 4
Метки нет (Все метки)

Есть массив: char *query=(char*)malloc(68);
Он улетает на сервер и возвращается другим.
Вот таким:

HTTP/1.1 200 OK
Server: nginx/1.1.14
Date: Wed, 04 Jul 2012 13:52:48 GMT
Content-Type: text/html
Content-Length: 7
Connection: keep-alive
X-Powered-By: PHP/5.2.6-1+lenny16

badPassapplication/x-www-form-urlencoded
do=CheckLogin&username=Admin&pass=88feab2ff325714e1c1a646ca1a5f98d

Меня интересует только слово badPass, всё что до него - сервер рассказывает мне о себе, всё что после - осталось от запроса на сервер (можно перед recv чистить массив, но проц лишние тики будет делать). Нюанс: сниффер всё ненужное мне помещает в Responce Header, а badPass в Responce Content, значит есть между ними разница.
Вопрос: как всё-таки мне из массива вытащить нужное слово и в переменную записать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2012, 18:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выбор слова из массива (C++):

Рандомный выбор слова - C++
Имеется файл(тхт), в котором записаны слова(каждое слово с новой строчки). Мне нужно рандомно выбирать какое-то из слов. Пока есть идея...

Выбор слова или словосочетания из списка - C++
Здравствуйте, помогите пожалуйста. Нужна простая программа которая будет делать рандомный выбор 1 слова или словосочетания из списка...

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

Выбор чисел из массива строк - C++
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Элементами слов могут быть любые графические символы. ...

Выбор наибольшего числа из массива - C++
Помогите пожалуйста написать программу, которая выбирает наибольшее число из массива, который содержит 100 неупорядоченных чисел на С++. ...

Выбор случайного элемента массива - C++
Понимаю что вопрос простой, но все же, подскажите, как выбрать случайную строку, из массива строк? заранее благодарен

4
rlib
20 / 20 / 1
Регистрация: 01.05.2012
Сообщений: 60
04.07.2012, 18:18 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <string.h>
void f(const char *query, char *buf, unsigned long bufsiz) {
/*
   query: ваш массив
   buf: буффер куда копировать 
   bufsiz: размер буффера
*/
  char *ss = "badPass";
  char *p = strstr(query, ss);
  if (p) {
      strncpy (char *buf, p, bufsiz);
  }
}
1
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
04.07.2012, 18:53 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main()
{
    static char query[256] = "badPassapplication/x-www-form-urlencodeddo=CheckLogin&username=Admin&pass=88feab2ff325714e1c1a646ca1a5f98d";
    char* buf = NULL; char sw[] = "badPass";
    if ((buf = strstr(query, sw)) != NULL)
    {
        char string[256] = "\0"; int i = 0;
        for (buf+=strlen(sw); *buf != '\0'; *buf++)
            string[i++] = *buf;
 
        printf("%s\n",string);
    }
 
    _getch();
 
    return 0;
}
2
Romadzao
7 / 7 / 1
Регистрация: 02.07.2012
Сообщений: 120
04.07.2012, 18:59  [ТС] #4
strstr и char *buf подчёркивает, мол ошибка тут, но дело даже не в этом, сервер мне может вернуть бэдПасс или мой логин, если вернёт логин, например Naprimer, ваша функция ведь его не вытащит, мне функция нужна именно для нахождения разницы между badPass и Naprimer. Но всё равно спасибо за ответ!
0
rlib
20 / 20 / 1
Регистрация: 01.05.2012
Сообщений: 60
04.07.2012, 19:07 #5
Hу, можно модифицировать на такое:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <string.h>
typedef enum {FALSE=0, TRUE=1} BOOL;
BOOL f(const char *query, char *buf, unsigned long bufsiz) {
/*
   query: ваш массив
   buf: буффер куда копировать 
   bufsiz: размер буффера
*/
  char *r1 = "badPass";
  char *r2 = "Naprimer";
  char *p = strstr(query, r1);
  if (p) {
       strncpy (char *buf, p, bufsiz);
       return TRUE;
  }
  p = strstr(query, r2); 
  if (p) {
    strncpy (char *buf, p, bufsiz);
    return TRUE;
  }
  return FALSE;
}
Добавлено через 2 минуты
Т.е. если вы не нашли нужную вам подстрочку в респонзе от сервера, то функция возвратит FALSE.
Иначе, функция возвратит TRUE и в буфере вернет искомую подстрочку.
1
04.07.2012, 19:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2012, 19:07
Привет! Вот еще темы с ответами:

Выбор значений из массива по определенной закономерности - C++
Народ, помогите, целый день туплю, не получается. Покажу на примере: - изначально имеется; что должны вывести: 4 5 3 4 5 4...

Сортировка массива,выбор индекса максимального - C++
всем привет такое вот задание: 1.сортировка за понижением 2.выбор индекса максимального 2.for з позитивным приростом параметра ...

Сортировка массива по заданию выбор индекса максимального - C++
Задание:Сделать сортировку массива по возрастанию ,выбора индекса максимального, внешний цикл for с негативным приростом...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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