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

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

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

Как разделить строку на подстроки - C++

07.07.2012, 12:41. Просмотров 571. Ответов 6
Метки нет (Все метки)

Здравствуйте, возник вопрос по парсингу строк в c++... Как разделить строку на подстроки по ид ? При этом элементов должно быть только два, то есть если ид встречается более одного раза то остальные не должны никак влиять, альтернатива функции php -
PHP
1
explode(id, string, 2)
Заранее огромное спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2012, 12:41     Как разделить строку на подстроки
Посмотрите здесь:

Разделить строку на две подстроки. - C++
Доброго времени суток.. В задании необходимо разбить исходную строку на две подстроки, при этом первая длиной k символов (если на k-ю...

Как узнать индекс вхождения подстроки в строку? - C++
Как задать шаблон строки? Объясню на примере: мне надо узнать индекс подстроки в строке, используя, например, String::IndexOf(String)....

Как подсчитать количество вхождений подстроки в строку - C++
Добрый вечер! Как можно подсчитать количество вхождений строки S2 в строку S1? Допустим: S1= dfsgsffgsrr S2= gs

Как разделить строку на слова? - C++
Как разделить строку на слова? без использования функций

Как разделить строку на слова? - C++
Помогите написать функцию для разбиения передаваемой строки на слова. Например дана строка: "This is text, and it is black.". И нужно...

Разбить строку на все "связные" подстроки. Получившиеся подстроки записать в вектор - C++
Нужно разбить минимальную строку на "связные" подстроки Например: строка Mas: "qwe" нужны подстроки: "q","w","e","qw","we","qwe"....

Файл: Как наиболее эффективно разделить строку? - C++
В файле есть например: James 0.8 0.7 0.75 0.5 0.85 J Как наиболее эффективно разделить эту строку, поместить James и J в двумерный char...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
854 / 752 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
07.07.2012, 14:03     Как разделить строку на подстроки #2
SUBSTR смотрите http://www.cplusplus.com/reference/s...string/substr/

но это немного другое : explode вернет массив строк
а substr одну подстроку


olegod, возможно strtok подойдет : http://www.cplusplus.com/reference/c...string/strtok/

режем от первой запятой до точки

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
#include <iostream>
#include <cstring>
 
int main ( )
 
{
 
    char str[ 100 ] = " by the function, and, the beginning, of the, token.";
 
    char str2[ 100 ];
 
    char *token = NULL;
 
    int i = 0;
 
    token = strtok ( str, ",");
 
    while ( token )
    {
              strcpy ( str2, token );
 
        token = strtok ( NULL, ".");
    }
 
    std::cout << "String :" <<  str << '\n' <<  "Substring :" << str2 << '\n';
 
    system ( "pause" );
 
    return 0;
}
olegod
0 / 0 / 0
Регистрация: 04.05.2011
Сообщений: 113
07.07.2012, 17:17  [ТС]     Как разделить строку на подстроки #3
Сейчас нет возможности протестировать... Вот например у нас строка "df,kf,sf,sd,mc,vb", вызываю так:
C++
1
dr = strtok( str, ",");
При первом вызове она вернёт df, при втором kf и т.д. ?
MrCold
854 / 752 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
07.07.2012, 17:45     Как разделить строку на подстроки #4
olegod, тогда режьте по концу строки

C++
1
2
3
4
5
6
7
token = strtok ( str, ",");
 while ( token )
    {
              strcpy ( str2, token );
 
        token = strtok ( NULL, "\0");
    }
http://liveworkspace.org/code/94848d...29c71e54e084bd
olegod
0 / 0 / 0
Регистрация: 04.05.2011
Сообщений: 113
07.07.2012, 17:59  [ТС]     Как разделить строку на подстроки #5
Извините, я вас не понял, зачем там конец строки? Если можно, поясните... Мой пример заработал вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main ( )
{
char str2[100];
char *token;
char str[] = "df,kf,sf,sd,mc,vb";
token = strtok ( str, ",");
while (token != NULL)
    {
              strcpy ( str2, token );
 
        token = strtok ( NULL, ",");
        cout << str2 << endl;
    }
}
Огромное спасибо что помогли разобраться...
MrCold
854 / 752 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
07.07.2012, 18:05     Как разделить строку на подстроки #6
Цитата Сообщение от olegod Посмотреть сообщение
должно быть только два
Думал вам нужно разделить строку на две по первому разделителю ( , )

Да ладно это уже не важно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2012, 21:40     Как разделить строку на подстроки
Еще ссылки по теме:

Как разделить строку(аналог функции explode) - C++
Есть строка string в которую записаны данные разделенные специальным разделителем например | Как разделить такую строку и записать...

Как можно найти вхождение подстроки в строку без строковых функций? - C++
Как можно найти вхождение подстроки в строку без строковых функций?

Как лучше всего разделить строку на несколько подстрок? - C++
Есть строка вида параметр1*параметр2*параметр3*параметр4. Как разделить эту строку, чтобы получить в первой переменной параметр1, во...

Разделить строку на строку и переменную - C++
Задача: В первой строке ввода задаётся число n, далее n строк вида &quot;Insert X&quot;, где X — натуральное число, или &quot;Extract&quot;. Нужно, чтобы...

Вхождение подстроки в строку - C++
Не правильно считает вхождение подстроки в строку,данные читаются из файлов. int _tmain() { SetConsoleCP(1251); ...


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

Или воспользуйтесь поиском по форуму:
olegod
0 / 0 / 0
Регистрация: 04.05.2011
Сообщений: 113
07.07.2012, 21:40  [ТС]     Как разделить строку на подстроки #7
Ну так и есть, но ведь этот метод подходит и для этого? Кстати, если исполнить это без цикла, например 1 раз, то я получу bf, а как получить оставшуюся часть(несмотря на то что там запятые)?
Yandex
Объявления
07.07.2012, 21:40     Как разделить строку на подстроки
Ответ Создать тему
Опции темы

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