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

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

Войти
Регистрация
Восстановить пароль
 
FMihail
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 33
#1

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

28.04.2013, 13:29. Просмотров 296. Ответов 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 копируется только первое слово, в чем проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 13:29     Копирование строки strtok
Посмотрите здесь:

Копирование символов строки C++
C++ Функция strtok. Представление телефонного номера в виде строки.
C++ Строки, копирование всех цифр из одной строки в другую
Можно ли разбить строки на слова при strtok и обратиться к нужному слову? C++
C++ Удаление строки strtok
C++ Копирование строки s в s1 n раз
Использование STRTOK Разбить строку на слова, из слов составить список C++ Функция strtok C++
C++ Копирование строки
Копирование части строки C++
Разбиение строки на токены: strtok C++
C++ Разделение строки на лексемы с strtok, проверка длины каждой лексемы (выдает ошибку)
Функция разделения строки на лексемы strtok C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
28.04.2013, 13:39     Копирование строки strtok #2
В том, что strtok() вставляет '\0' прямиком в исходную строку.
FMihail
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 33
28.04.2013, 15:41  [ТС]     Копирование строки strtok #3
это понятно, но как мне сделать так чтобы копировались и другие слова
C++
1
2
3
4
5
char str2[40];
strcpy (str2,str);
 
 
  printf ("str2: %s\n",str2);
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
28.04.2013, 15:49     Копирование строки strtok #4
Копировать их в тот момент, когда strtok() возвращает указатель на начало следующего токена.
FMihail
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 33
28.04.2013, 17:06  [ТС]     Копирование строки strtok #5
получилось, спасибо
есть еще вопрос как сравнить последнюю букву слова с первой буквой следующего слова
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
28.04.2013, 17:16     Копирование строки strtok #6
Вообще правильно вычислить длину предыдущего слова, чтобы узнать, где у него нужная буква. Естессно, надо помнить начала обоих слов. Можно попробовать схитрить и адресной арифметикой вернуться назад от первой буквы текущего слова, но strtok() ничего не говорит о том, что будет делать, когда идёт подряд несколько разделителей, так что такой вариант может не взлететь.
Yandex
Объявления
28.04.2013, 17:16     Копирование строки strtok
Ответ Создать тему
Опции темы

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