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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
алексейч
2 / 2 / 0
Регистрация: 22.02.2012
Сообщений: 66
Записей в блоге: 1
#1

работа с памятью strtok - C++

31.08.2012, 04:13. Просмотров 1181. Ответов 20
Метки нет (Все метки)

Подскажите где можно почитать прочитать о том как правильно использовать strtok с максимально простой терминологией и максимально подробно...просто как не печально хорошего и подробного описания я по ней найти не могу...
+И очень извиняюсь можете также объяснить что такое статический указатель...а то эта 1на из часто встречающихся формулировок в описании данной команды логический смысл которой мне увы неясен...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2012, 04:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос работа с памятью strtok (C++):

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

Работа с strtok (подскажите) - C++
char buffer; strcpy(buffer, "1|2|3|4|5|||8|9|10" ); //если между разделительными символами нет значений ||| // они просто...

Работа с памятью - C++
Нужно ривести пример использования операторов new и delete для выделения памяти под двумерный массив и освобождения памяти двумерного...

Работа с памятью - C++
Всем привет! Не могу разобраться, как написать код программы, которая моделирует механизм виртуальной памяти. Кто сможет реализовать хотя...

работа с памятью - C++
Доброго времени суток! У меня возникло затруднение - нужно реализовать на языке Си программу,демонстрирующую распределение памяти таким...

Работа с памятью - C++
Может кто хорошо понимает механизм выделения и освобождения памяти объяснить его, а то я в конец запутался с ним, вот помогал одному...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
01.09.2012, 01:35 #16
алексейч, Мы не обнуляем указатель. Просто strtok работает именно так, в первый вызов туда посылается строка, которую мы хотим распарсить, в последующие туда посылается NULL.
1
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
01.09.2012, 01:41 #17
Цитата Сообщение от ForEveR Посмотреть сообщение
... в первый вызов туда посылается строка, которую мы хотим распарсить, в последующие туда посылается NULL.
... до тех пор, пока нам не понадобится распарсить новую строку, в этом случае мы её укажем в качестве первого параметра.
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
01.09.2012, 01:42 #18
lazybiz, Ну да. Не стал это упоминать.
1
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
01.09.2012, 01:44 #19
пример
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <string.h>
 
int main ()
{
  char str[] ="- This, a sample string.";
  char str2[] ="Съешь еще этих булок.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.-");
  }
  
  pch = strtok (str2," .");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " .");
  }
  return 0;
}

результат
Splitting string "- This, a sample string." into tokens:
This
a
sample
string
Съешь
еще
этих
булок
1
алексейч
2 / 2 / 0
Регистрация: 22.02.2012
Сообщений: 66
Записей в блоге: 1
01.09.2012, 01:49  [ТС] #20
Цитата Сообщение от lazybiz Посмотреть сообщение
Не обнуляем, а присваиваем pch новое значение.
блин... меня смушает как сие просиходит...возможно я неправильно понимаю слово указатель... указатель это ссылка на адрес нашей перменной-строки.. или стрток делает какбы массив указателей тоесть наш указатель каждому слову придает свой номер и вот так мы их попарядку выводим....?
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
01.09.2012, 01:55 #21
Цитата Сообщение от алексейч Посмотреть сообщение
возможно я неправильно понимаю слово указатель...
Указатель - это переменная, которая хранит в себе адрес чего-либо (чего угодно), в данном случае строки.
Я не знаю точно как работает strtok (не интересовался), но она выдает нам новый указатель на часть строки, которую предварительно копирует в другую область памяти.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2012, 01:55
Привет! Вот еще темы с ответами:

Работа с памятью в С++ - C++
Здравствуйте. Если я правильно понимаю, то при запуске программы, программе выделяется определенное кол-во памями, которое оно может...

Работа с памятью - C++
Добрый день всем. Я только начал изучение C#(раньше работал c: C++ маленько -т.е. общее представление о нем имею) и у меня вопрос, можно...

Работа с памятью - C++
Есть приложение,в нем есть label'ы. Есть ли какая-нибудь возможность средствами C++ допустим, перевести эти контролы? Если есть - дайте...

Работа с памятью - C++
Форумчане, доброго времени суток. Заранее извиняюсь за нубские вопросы, но должен разобраться в теме. Суть такова: написал class...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.09.2012, 01:55
Ответ Создать тему
Опции темы

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