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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
stratovarius
13 / 13 / 0
Регистрация: 12.07.2009
Сообщений: 114
#1

strtok - C++

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

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

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

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

strtok - C++
Привет! Решаю задачку на строки char. Возникла проблема вот код: //vuravnivanie slov po levomy i pravomy pol9m stranicu ...

strtok - C++
Почему так работает #include <stdafx.h> #include <conio.h> using namespace std; int main(){ char string = "a string, of ,...

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

функция strtok - C++
расскажите алгоритм char str ="- This, a sample string."; char * pch; printf ("Splitting string \"%s\" into tokens:\n",str); ...

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

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

Добавлено через 2 минуты
strtok() может ещё менять набор разделителей в процессе
0
stratovarius
13 / 13 / 0
Регистрация: 12.07.2009
Сообщений: 114
21.04.2010, 15:20  [ТС] #7
а на примере кода можете показать?
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2010, 10:22
Привет! Вот еще темы с ответами:

Strtok противоположность - C++
Есть ли функция, противоположная strtok? Надо соединить две строки вида массивов char'ov в одну, используя разделитель

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

strtok не работает - C++
Почему не работает код? #include &lt;string.h&gt; #include &lt;iostream.h&gt; #pragma argsused int main(int argc, char* argv) { ...

Strtok и strtok_s - C++
Доброго времени суток. Есть вот такой код: Info::Info(ifstream &amp;f) { char STR=&quot;&quot;; char *delim = &quot;\t&quot;; char *ptr; ...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
22.04.2010, 10:22
Ответ Создать тему
Опции темы

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