Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 33

Копирование строки strtok

28.04.2013, 13:29. Показов 1190. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я разбиваю строку на токены с помощью strtok
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
int main(int argc, char* argv[])
{
char str[] ="- This, a sample string.";
  char * p;
  printf ("Razdelenie stroki \"%s\" into tokens:\n",str);
  p = strtok (str," ,.-");
  while (p != NULL)
  {
    printf ("%s\n",p);
    p = strtok (NULL, " ,.-");
  }
        getch();
        return 0;
}
а когда начинаю копировать строку через strcpy копируется только первое слово, в чем проблема?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2013, 13:29
Ответы с готовыми решениями:

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

Удаление строки strtok
Здравствуйте, дорогие друзья. Передо мной задача - удалить часть строки при помощи функции strtok. Но как это сделать - ?? Допустим,...

Разбиение строки на токены: strtok
нужно чтобы программа разбивала строку с выражением, использую strtok например &quot;6+8+99-76-34&quot; выводила 6 8 99 76 34 +...

5
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
28.04.2013, 13:39
В том, что strtok() вставляет '\0' прямиком в исходную строку.
0
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 33
28.04.2013, 15:41  [ТС]
это понятно, но как мне сделать так чтобы копировались и другие слова
C++
1
2
3
4
5
char str2[40];
strcpy (str2,str);
 
 
  printf ("str2: %s\n",str2);
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
28.04.2013, 15:49
Копировать их в тот момент, когда strtok() возвращает указатель на начало следующего токена.
1
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 33
28.04.2013, 17:06  [ТС]
получилось, спасибо
есть еще вопрос как сравнить последнюю букву слова с первой буквой следующего слова
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
28.04.2013, 17:16
Вообще правильно вычислить длину предыдущего слова, чтобы узнать, где у него нужная буква. Естессно, надо помнить начала обоих слов. Можно попробовать схитрить и адресной арифметикой вернуться назад от первой буквы текущего слова, но strtok() ничего не говорит о том, что будет делать, когда идёт подряд несколько разделителей, так что такой вариант может не взлететь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2013, 17:16
Помогаю со студенческими работами здесь

Функция разделения строки на лексемы strtok
Программе на вход подается строка, содержащая слова один-девять плюс минус, наприм: один плюс два минус три плюс пять. Нужно посчитать...

Функция strtok. Представление телефонного номера в виде строки.
Запутался в функции strtok. Причем уже сделал для неё пару упражнений, вроде понимаю как она работает. По крайней мере с предложением из...

Можно ли разбить строки на слова при strtok и обратиться к нужному слову?
Вот предположим есть какой-то текст fdjgd f.df dfdgwe wek eu fkkkk Предположим мне нужно поработать только с каким-то...

C18 Функция Strtok - считывается только первое число строки
Добрый день. У меня возникла необходимость парсить большое количество строк и вычленять числа из строки, разделенные между собой точкой...

Excel. Копирование столбца, при заполнении 22-й строки продолжить копирование в соседний столбец
Всем привет. Задача: Есть таблица Excel, заполнены 2 столбца, из них первый - порядковые номера, второй - числа. Нужно: - провести...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru