Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
12 / 7 / 3
Регистрация: 06.01.2013
Сообщений: 127

Ошибка с strtok - как исправить?

16.04.2013, 00:09. Показов 1045. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот например:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
using namespace std; 
void main ()
{ 
char text[]="gh.gh.g hghgh o3 jf7 fk., fj", *text1, *text2;
 
   text1=strtok(text, " ");  \\здесь text1 должно принимать значение gh.gh.g - собственно все правильно получается
                                        
    text2=strtok(text1, ".");   \\text2 становится gh - пока все правильно 
    cout<<text2;
    while(text2!=NULL)                      \\после выполнения цикла должно вывестись ghghg - собственно выводится
    {text2=strtok('\0', "."); cout<<text2;   \\ и выскакивает ошибка
    }
 
}
Как избавиться от ошибки? Потому что после вывода ghghg мне нужно дальше работать в программе

Добавлено через 17 минут
while(text2!=NULL)
Не понимаю вот какое условие здесь нужно поставить, чтобы правильно работало?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2013, 00:09
Ответы с готовыми решениями:

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

Strtok ошибка в цикле
char s1, *ptr; int lengthStr = 0; cin.getline(s1, size); checkStr(s1); //исправляем двойные/тройные пробелы while (s1...

Непонятная ошибка с вызовом strtok
struct List { string listName; string creationDate; int usesCount; List *nextList; ... }; class linkedList { string...

3
138 / 130 / 59
Регистрация: 13.12.2012
Сообщений: 293
16.04.2013, 00:16
Дело в том, что strtok у вас возвращает 0, и cout не может его напечатать

Добавлено через 2 минуты
И ghghg после цикла точно никак не выведется, потому что strtok сначала изменил пробел на '/0' в исходной строке, а потом точку
1
12 / 7 / 3
Регистрация: 06.01.2013
Сообщений: 127
16.04.2013, 00:16  [ТС]
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
Дело в том, что strtok у вас возвращает 0, и cout не может его напечатать
В самом деле заработало без cout, но мне надо как-то это вывести, что можно сделать?
0
138 / 130 / 59
Регистрация: 13.12.2012
Сообщений: 293
16.04.2013, 00:18
Можно перед выводом проверять, равен ли указатель 0

C++
1
if (text2) cout<<text2;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.04.2013, 00:18
Помогаю со студенческими работами здесь

2012 strtok не работает и выдается ошибка, что требуется strtok_s
Проблема в том, что в 2012-ом strtok не работает и выдается ошибка типо нужно strtok_s. Ввожу strtok_s, а это уже абсолютно другая функция,...

Как работает функция strtok
Как работает функция strtok. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;conio.h&gt; using namespace...

Ошибка С3876 в С++. Как ее исправить?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;windows.h&gt; using namespace std; class...

ошибка компилятора как исправить
компилятор видает ошибку (Stack around the variable &quot;pt2&quot; was corrupted) з чем может бить связана данная ошибка, компилятор Microsoft...

Ошибка: С2027, как ее исправить?
Пишет: &quot;использование неопределенного типа Row&quot;-&gt;указывает на ошибку здесь: Row *r = new Row; #include&lt;iostream&gt; using...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru