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

Strtok() и string - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 54, средняя оценка - 4.70
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
16.07.2011, 19:54     Strtok() и string #1
По заданию нужно воспользоваться именно strtok чтобы разбить строку что есть на слова (ориентируясь на пробелы, все знаки препинания предварительно убираются).
Собственно
C++
1
2
3
4
string str;
...
string str2=strtok(str.c_str()," "); - материться
string str2=strtok(str.data()," "); - и так тоже матерится
Собственно ошибка связана с тем что strtok отказывается жевать const (вообще странно, она же не должна менять строку так не пофиг ли ей const или не const), есть вариант по поводу того как здесь быть? Хотя я и не исключаю варианта того что автор задания имел в виду создание строки в стиле си и последующую её инициализацию данными из моей строки, а потом уже использование с ней strtok, но всё же если у кого есть варианты как получить не const символьные данные из моей строки для strtok то напишите их или если вы уверены что их точно нет то напишите об этом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2011, 19:54     Strtok() и string
Посмотрите здесь:

strtok C++
strtok C++
C++ функция strtok
C++ warning strtok
C++ strtok
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.07.2011, 21:15     Strtok() и string #21
Цитата Сообщение от Gepar Посмотреть сообщение
Книга Дейтела
Может у меня не та книга (Х.М.Дейтел, П.Дж.Дейтел "Как программировать на С++" пятое малое издание), но там такого нет, да и странно было бы. Отлучать от компа надо минимум на год за такие выкрутасы! С и С++ - разные языки, и путать их не за чем.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
16.07.2011, 21:17     Strtok() и string #22

Не по теме:

easybudda, прежде, чем написать своё предыдущее сообщение, я заглянул в задания к разделу std::string и, к сожалению, убедился в том, что такое задание там присутствует...



Добавлено через 47 секунд

Не по теме:

И да, возможно, в малом издании этого нет, но в обычном пятом издании (которое у меня) - есть.

Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
16.07.2011, 21:23     Strtok() и string #23
По поводу const_cast... вот такой код уже падает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <cstring>
 
int main()
{
   const char* str = "test string";
   
   char* p = strtok(const_cast <char*> (str), " ");
 
   std::cout << p << std::endl;
 
   return 0;
}
А с std::string все работает, как я понимаю, это потому, что внутри самого string'а указатель на данные не константный и память не является read only(как сказал Kastaneda), а константность берется потому, что тип возвращаемого значения у c_str - const char*, и с помощью const_cast мы убираем эту константность, а в коде выше сами данные const и соответственно read only память.
easybudda
16.07.2011, 21:34
  #24

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
прежде, чем написать своё предыдущее сообщение, я заглянул в задания...
А я, когда ты своё сообщение писал, как-раз этот раздел книжки в срочном порядке перечитывал. Несколько раз перелистал - нету... Таки обрезание на пользу пошло...

silent_1991
16.07.2011, 21:35
  #25

Не по теме:

Цитата Сообщение от easybudda Посмотреть сообщение
Таки обрезание на пользу пошло...
Видимо, да))

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2011, 21:58     Strtok() и string
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Gepar
16.07.2011, 21:58  [ТС]     Strtok() и string
  #26

Не по теме:

Я хотел 6ое найти, когда начинал изучать с++ оно уже было переведено и напечатано (а 7ое какраз только вышло на английском), но в книжных магазинах города я его не нашёл, а в инете его нету (хотя чтобы я вот это скачал из инета книгу да пользовался ею, да никогда! Я бы так, посмотрел бы есть ли это задание в ней и всё ), может в 6ом его уже тоже обрезали.

Yandex
Объявления
16.07.2011, 21:58     Strtok() и string
Ответ Создать тему
Опции темы

Текущее время: 18:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru