Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

Strtok() и string

16.07.2011, 19:54. Показов 19984. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По заданию нужно воспользоваться именно 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 то напишите их или если вы уверены что их точно нет то напишите об этом
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2011, 19:54
Ответы с готовыми решениями:

Strtok для string
Есть ли какая-то функция, которая осуществляет strtok для string(из <string>) ?

strtok для string
Существует ли strtok для string? Или его аналог

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

25
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
16.07.2011, 21:15
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Gepar Посмотреть сообщение
Книга Дейтела
Может у меня не та книга (Х.М.Дейтел, П.Дж.Дейтел "Как программировать на С++" пятое малое издание), но там такого нет, да и странно было бы. Отлучать от компа надо минимум на год за такие выкрутасы! С и С++ - разные языки, и путать их не за чем.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
16.07.2011, 21:17

Не по теме:

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



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

Не по теме:

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

0
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
16.07.2011, 21: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 память.
0
16.07.2011, 21:34

Не по теме:

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

0
16.07.2011, 21:35

Не по теме:

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

0
16.07.2011, 21:58  [ТС]

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.07.2011, 21:58

Нельзя преобразовать тип Tuple<string,string,string,string> к string
Здравствуйте, у меня возникла проблема. При запуске кода, вылезает ошибка &quot;Нельзя преобразовать тип...

Что такое p=strtok(str," "), p=strtok(0," ")?
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;locale&gt; int main() { setlocale(LC_ALL, &quot;RUSSIAN&quot;); char *p=0,...

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population
Здравствуйте! По C# есть задачка, с которой я так и не разобрался :( Задача: Создайте класс Animal. Добавьте поля string...

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population
Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population. Создание объектов может происходить как без...

Ошибка PHPOfice: Cannot use PhpOffice\PhpWord\Shared\String as String because 'String' is a special class name
Fatal error: Cannot use PhpOffice\PhpWord\Shared\String as String because 'String' is a special class name in...


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

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

Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru