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

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

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

strtok - C++

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

Скажите, если ли функция, аналог strtok, для типа string?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2010, 22:59     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); ...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
20.04.2010, 23:46     strtok #2
можно привести строку string к примитивной строке:

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

Добавлено через 2 минуты
strtok() может ещё менять набор разделителей в процессе
stratovarius
13 / 13 / 0
Регистрация: 12.07.2009
Сообщений: 114
21.04.2010, 15:20  [ТС]     strtok #7
а на примере кода можете показать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2010, 10:22     strtok
Еще ссылки по теме:

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

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

Функция strtok() - C++
Доброе время суток! Подскажите пожалуйста в чем проблема и как с ней бороться. Имеем такой код: #include <iostream> ...

Двойной strtok - C++
Всем привет! Возник такой вопрос. В ходе решения одной задачи, связанной с разбиением строки на некоторые подмножества слов,...

warning strtok - C++
Пишу в 10 студии: char* bla = strtok("bla bla bla", " "); Выдаёт варнинг: This function or variable may be unsafe. Consider using...


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

Или воспользуйтесь поиском по форуму:
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.04.2010, 10:22     strtok #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
Yandex
Объявления
22.04.2010, 10:22     strtok
Ответ Создать тему
Опции темы

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