Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
stratovarius
13 / 13 / 3
Регистрация: 12.07.2009
Сообщений: 114
#1

strtok - C++

20.04.2010, 22:59. Просмотров 3287. Ответов 7
Метки нет (Все метки)

Скажите, если ли функция, аналог strtok, для типа string?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2010, 22:59
Я подобрал для вас темы с готовыми решениями и ответами на вопрос strtok (C++):

Использование STRTOK Разбить строку на слова, из слов составить список C++ Функция strtok
Задача Дана строка слов с разделителями, в данном примере слова с пробелами...

strtok
Привет! Решаю задачку на строки char. Возникла проблема вот код: ...

strtok
Почему так работает #include <stdafx.h> #include <conio.h> using namespace...

strtok
как с помощью функции strtok вывести последнее слово

функция strtok
расскажите алгоритм char str ="- This, a sample string."; char * pch; ...

strtok не работает
Почему не работает код? #include <string.h> #include <iostream.h> #pragma...

7
PointsEqual
ниначмуроФ
838 / 522 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
20.04.2010, 23:46 #2
можно привести строку string к примитивной строке:

C++
1
2
string s="qwerty";
s.c_str();
а потом уже применять функцию strtok();
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
21.04.2010, 04:33 #3
string::substr
0
accept
4833 / 3254 / 454
Регистрация: 10.12.2008
Сообщений: 10,569
21.04.2010, 05:57 #4
есть istringstream
когда из строки делается поток, к которому потом можно применять getline()
0
stratovarius
13 / 13 / 3
Регистрация: 12.07.2009
Сообщений: 114
21.04.2010, 07:42  [ТС] #5
ну а как, например, разбить строку "abc klh, sgr" на слова с резделителями " ,"?
0
accept
4833 / 3254 / 454
Регистрация: 10.12.2008
Сообщений: 10,569
21.04.2010, 08:56 #6
по ходу через s.get() можно, то есть stringstream оставить, а getline() заменить на свою функцию, в которой метод get() считывает каждый символ и ищет его в списке разделителей, а само слово сохранять в string

Добавлено через 2 минуты
strtok() может ещё менять набор разделителей в процессе
0
stratovarius
13 / 13 / 3
Регистрация: 12.07.2009
Сообщений: 114
21.04.2010, 15:20  [ТС] #7
а на примере кода можете показать?
0
accept
4833 / 3254 / 454
Регистрация: 10.12.2008
Сообщений: 10,569
22.04.2010, 10:22 #8
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
 
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
int GetWord(string& s, string sep, istringstream& strm);
 
int main(void)
{
    string s = "abcd defg, abcd, defgh";
    string seps = " ";
    
    istringstream istr;
    string a;
    
    istr.str(s);
    
#if 0    
    while (istr >> a)
        cout << a << endl;
#endif
 
    while (GetWord(a, seps, istr) == 0)
        cout << " ."
             << a
             << ". "
             << a.length()
             << endl;
 
    return 0;
}
 
int GetWord(string& s, string sep, istringstream& strm)
{
    string tmp = "";
    char c;
    
    while (strm.get(c))
        cout << c << endl;
    
    return 1;
    
    return 0;
}
дальше поиск в string
0
22.04.2010, 10:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2010, 10:22
Привет! Вот еще темы с решениями:

Strtok и strtok_s
Доброго времени суток. Есть вот такой код: Info::Info(ifstream &amp;f) { char...

Strtok противоположность
Есть ли функция, противоположная strtok? Надо соединить две строки вида...

Не работает strtok()
Здравствуйте, нужно посчитать количество слов в файле. Подскажите пожалуйста,...

Strtok() и string
По заданию нужно воспользоваться именно strtok чтобы разбить строку что есть на...


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

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

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