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

Написать функцию для парсинга всех 3 строк - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ atlapp.h vs2013 error c2039 AtlGetCommCtrlVersion: не является членом "ATL" http://www.cyberforum.ru/cpp-beginners/thread1072740.html
доброе время суток уважаемые форумчане. только начал использовать atl, и сразу столкнулся с такой проблемой. может кто знает решение данной проблемы, поделитесь пожалуйста советом что мне делать с этим. ниже прилагаю лог ошибок который выдала мне студия 1>------ Сборка начата: проект: lab2_1, Конфигурация: Debug Win32 ------ 1> stdafx.cpp 1>c:\program files (x86)\microsoft visual studio...
C++ Из теста Укажите наиболее старший (длинный) из перечисленных типов: Выберите один ответ: char long int double float Укажите наиболее младший (короткий) тип из перечисленных: Выберите один ответ: unsigned long http://www.cyberforum.ru/cpp-beginners/thread1072732.html
Обработка последовательности символов. Определить количество слов из М букв, начинающихся с заданной буквы C C++
В тексте первый символ каждого слова - цифра, указывающая длину этого слова. Определить количество слов из М букв, начинающихся с заданной буквы C.
Ввод с кла-ры C++
Подскажите как сделать так, чтобы через консоль можно было в любой момент ввести данные с клавиатуры, пока выполняется какое-либо действие.
C++ Треугольник из звёздочек http://www.cyberforum.ru/cpp-beginners/thread1072715.html
using namespace ::std; int main() { int j; int i; int k = 0; for (i = 0; i < 6, k < 6; i++)
C++ Мусор в массиве Задание: Подсчитать количество ненулевых разрядов в двоичной записи заданного натурального числа. Например в числе 13210 = 100001002 - 2 ненулевых разряда. Вот, что я написал... Когда я вывожу на экран, после двоичного кода, у меня какой то мусор, помогите разобраться, пожалуйста! #include "conio.h" #include "stdio.h" #include "math.h" #include "stdlib.h" void GetBit (int n, int mas) {... подробнее

Показать сообщение отдельно
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
16.01.2014, 02:59     Написать функцию для парсинга всех 3 строк
Есть строка вида:

" text text1 , text2 "

Перед и после строки text или text1 и text2 может сколько угодно пробелов и символов табуляции.
Но символ " , " может быть слит со строкой text1.

Ну так вот нужно написать функцию для парсинга всех 3 строк [text,text1,text2]

Сами функции для text1 и text2 я написал но код очень громоздкий а то и быдлокод.

Кликните здесь для просмотра всего текста

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
char* parser::parse_cmd(char str[256]) //text
{
    int cm = 0;
    char cmd[3] = {NULL};
    bool is_world = false;
    bool is_end = false;
    for(int i = 0;i < (int)strlen(str) && !is_end;i++)
    {
        if ( str[i] != ' ' && str[i] != '\t' )
            is_world = true;
        else
            is_world = false;
        if ( is_world )
        {
            cmd[cm] = str[i];
            if ( str[i+1] == ' ' )
                is_end = true;
            else
                cm++;
            if ( is_end )
                return cmd;
        }
    }
    return NULL;
}
 
char* parser::parse_argv_one(char str[256]) // text1
{
    int cm = 0;
    int world = 0;
    char cmd[3] = {NULL};
    bool is_ses = true;
    bool is_world = false;
    bool is_end = false;
    for(int i = 0;i < (int)strlen(str);i++)
    {
        if ( str[i] != ' ' && str[i] != '\t' )
        {
            is_world = true;
            if ( is_ses )
            {world++;is_ses=false;}
            if(world==2)
            {cmd[cm] = str[i];cm++;}
        }
        else
        {is_world = false;is_ses=true;}
    }
    cmd[3] = 0x00;
    cmd[4] = 0x00;
    return cmd;
}


Хотелось написать как нибудь по другому и по оригинальней а кроме такого парсинга текста ничего не лезет в голову. :C

Вообщем нужны 3 функции для парсинга всех строк [text,text1,text2].
Или все же такой способ тоже нормальный?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru